如何解决不要跨子域共享会话
我在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 举报,一经查实,本站将立刻删除。