gpt4 book ai didi

asp.net - 如何在 ASP.NET 中跨多个 Web 应用程序维护相同的 session ID

转载 作者:行者123 更新时间:2023-12-04 12:01:02 26 4
gpt4 key购买 nike

我在 IIS 上的不同虚拟目录上设置了两个相同的应用程序(我已经做了一些解决方法以确保它们都具有相同的应用程序名称)。有没有办法在两个 asp.net Web 应用程序之间共享 session ID?

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

最佳答案

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

然后,只需确保 url 具有相同的 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 模式。

关于asp.net - 如何在 ASP.NET 中跨多个 Web 应用程序维护相同的 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3215737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com