微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不要跨子域共享会话

如何解决不要跨子域共享会话

我在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 举报,一经查实,本站将立刻删除。