加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

如何在ASP.NET中的多个Web应用程序中维护相同的会话ID

发布时间:2020-12-16 04:12:36 所属栏目:asp.Net 来源:网络整理
导读:我在IIS上有两个相同的应用程序设置在不同的虚拟目录上(我已经做了一些解决方法,以确保它们都具有相同的应用程序名称).有没有办法在两个asp.net Web应用程序之间共享会话ID? 由于我在StateServer中存储会话,因此它们都应该获得相同的会话数据,但是,每次从应
我在IIS上有两个相同的应用程序设置在不同的虚拟目录上(我已经做了一些解决方法,以确保它们都具有相同的应用程序名称).有没有办法在两个asp.net Web应用程序之间共享会话ID?

由于我在StateServer中存储会话,因此它们都应该获得相同的会话数据,但是,每次从应用程序a到应用程序b时,都会创建不同的会话ID.在负载平衡方案中也不会发生这种情况吗?当我去www.test.com时,它会将该请求重定向到服务器a,然后如果我再次点击它,它将转到服务器b,但由于它是一个不同的Web应用程序,它将创建一个新的会话ID ?

解决方法

首先,在web.config中配置sessionState元素,以在两个应用程序中使用cookieName =“SOME_COOKIE_NAME_HERE”.

然后,只需确保网址具有相同的TLD(顶级域名),即app1.mydomain.com和app2.mydomain.com,您应该能够处理Global.asax中的Session_Start事件并将此代码放入:

HttpCookie cookie = new HttpCookie("SOME_COOKIE_NAME_HERE",Session.SessionID.ToString());
    cookie.Expires = DateTime.Now.AddMinutes(20);
    cookie.Domain = "*.mydomain.com";
    cookie.HttpOnly = true;
    Response.SetCookie(cookie);

另外,我建议您使用SqlServer SessionState模式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读