[英]Replacement for ASP.NET Virtual Directory for Multi-tenancy
我正在使用ASP.NET 4.5開發ASP.NET WebForms應用程序
該應用程序具有多租戶支持。 每個租戶都有自己的URL,例如:
http://myApplication.net/DemoTenant1/
在Login.aspx中非常簡化,應用程序調用此方法並將此URL轉換為內部ID。
public static string getTenant(HttpRequest request) { return = request.Url.ToString(); }
現在的問題是,我們有200多個租戶,每個租戶都需要定義一個WebApplication,
我正在尋找一種智能替代品,使之與舊網址保持兼容。
我正在尋找一個想法,如何通過URL路由解決此問題,或者如何將WebForms與MVC混合並添加登錄控制器?
也歡迎其他想法...
我同意亞歷山大所說的話,正確的方法是使用URL路由。 但是...如果您想節省時間...
首先,刪除所有Web應用程序;
所以擺脫...
http://myApplication.net/DemoTenant1/
http://myApplication.net/DemoTenant2/
http://myApplication.net/DemoTenant3/
然后,您需要確保輸入以下內容:
http://myApplication.net/
...將您帶到您要使用的實際WebApplication。
然后,在global.asax文件中,您需要捕獲404異常。
因此,當有人輸入時:
http://myApplication.net/DemoTenant1/
...它將引發404異常,您可以像這樣在global.asax文件中捕獲該異常:
void Application_Error(object sender, EventArgs e)
{
string urlData = Request.ServerVariables["SCRIPT_NAME"];
// do some string splitting to get the DemoTenant1 value
// Response.Redirect("~Login.aspx?tenant=DemoTenant1");
}
有點混亂,但是在過去與您完全一樣的情況下,我是在過去這樣做的。 但是,您現在確實具有Microsoft構建的路由模塊(當時我沒有)。 我非常確定您可以在Webforms中使用“路由”模塊,而不必使用MVC。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.