问题描述
我在ASP.NET MVC
中有一个站点,该站点是多租户,如果URL包含子域abc,则该应用基于abc.mysite.com和xyz.mysite.com等子域标识租户,然后应用程序连接到abc数据库,并且同样适用于其他租户。
我的问题是,当我在同一浏览器中登录两个租户的站点并切换到URL时,应用程序允许我访问其他租户数据。如何防止一个子域的会话被另一个子域占用?
下面是我在Global.asax中当前的代码,在此我可以识别标题,但它不起作用。
protected void Application_BeginRequest()
{
var requestedUrl = Request.Url.ToString().ToLower();
var urlHeader = Convert.ToString(UrlContext.GetBaseUrl());
if (!requestedUrl.StartsWith(urlHeader)
&& ((ConfigurationManager.AppSettings["PublishMode"] != null ? ConfigurationManager.AppSettings["PublishMode"].ToString() : "production") == "production"))
{
UriBuilder builder = new UriBuilder(urlHeader);
Response.StatusCode = 301;
response.addheader("Location",builder.ToString());
Response.End();
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)