Ton*_*ony 5 c# asp.net authentication cookies firefox
我正在开发一个小型Web应用程序,用于共享计算机.
当用户关闭浏览器窗口时,我希望删除会话和身份验证.
在登录页面中,我使用类似的东西来验证用户:
FormsAuthenticationTicket authTicket =
new FormsAuthenticationTicket(1,txtUser.Text,
DateTime.Now,
DateTime.Now.AddMinutes(5),
false,"");
string encTicket = FormsAuthentication.Encrypt(authTicket);
HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
HttpContext.Current.Response.Cookies.Add(faCookie);
string redirectUrl = FormsAuthentication.GetRedirectUrl(txtUser.Text, false);
HttpContext.Current.Response.Redirect(redirectUrl);
Run Code Online (Sandbox Code Playgroud)
如您所见,我已将"isPersistent"变量设置为false.
这似乎适用于Chrome(尚未在IE上测试),但是,当我在Firefox上运行应用程序时,激活了多个选项卡,如果我关闭浏览器并再次打开,我仍然经过身份验证,并且cookie仍然存在!
它真的很奇怪,因为关闭时应删除cookie ...当你打开多个标签时,这是Firefox的错误吗?我怎样才能解决这个问题?
非常感谢帮助!
提前致谢
感谢大家的提示,但我确信我会关闭浏览器,不会再打开任何与 Firefox 相关的窗口。
通过阅读本文,这似乎是 Firefox 3 设计者选择的默认浏览器行为......
似乎它在磁盘上存储了本应存储在 RAM 上的 cookie,以便在您再次打开浏览器时恢复选项卡。所以如果你想删除session,你需要关闭所有标签,然后浏览器...
我认为这可能会导致一些有关身份验证安全性的缺陷,例如,有人正在使用该应用程序,完成工作并通过关闭浏览器而不是选项卡离开。由于计算机是共享的,在另一个用户打开浏览器后,他将看到所有选项卡,并恢复之前的会话......
| 归档时间: |
|
| 查看次数: |
13459 次 |
| 最近记录: |