[英]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.