gpt4 book ai didi

asp.net - 打开多个浏览器时 IE8 和 ASP.Net 表单例份验证 Cookie 失败

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

我的登录页面上有以下代码。我用它来设置客户的登录超时。在 IE8 中,我遇到这样的问题:如果用户打开另一个浏览器窗口,然后在第一个窗口中注销,当他们重新登录时,他们会在一个页面后(每次)弹回到登录状态。如果他们不打开另一个浏览器,一切都很好。

我发现了很多与此相关的问题,但我发现唯一有效的解决方案是使用 cookieless 方法 (URI)。

我看过一些文章说要设置域,我正在这样做,但这不起作用。另外,我尝试将 authticket 设置为持久和非持久。两者都没有产生任何影响。我发现一旦 auth cookie 从文件夹中消失,当我登录时它就不会重新创建。

如果我将第二个浏览器窗口作为“新 session ”打开,我不会遇到任何问题。 (这是不切实际的,因为我们无法训练应用程序的每个用户以这种方式打开任何其他窗口。)

是否有任何人发现不涉及使用 cookieless URI 方法的解决方案?

int timeoutValue = 20 // This value is actually returned from a method;

FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(LoginControl.UserName, false, timeoutValue);
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);

HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
authCookie.Domain = "my.domain";
authCookie.Expires = DateTime.Now.AddMinutes(timeoutValue);

HttpContext.Current.Response.Cookies.Add(authCookie);

最佳答案

这是 Internet Explorer 的一项“功能”,用于跨浏览器窗口共享 cookie/ session 。因此,在 IE8 中创建“新 session ”的新“功能”。因此,我不认为有任何理想的方法可以轻松阻止这种行为。

当然,除了无 cookie 之外。

关于asp.net - 打开多个浏览器时 IE8 和 ASP.Net 表单例份验证 Cookie 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2240895/

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