0
我当时正在使用表单身份验证,如果用户关闭浏览器而不是点击网站上的退出按钮,则发现问题。表单验证Cookie在浏览器上仍然存在关闭
如果用户关闭浏览器,则表单auth cookie仍然存在,即使它是仅会话cookie并且没有持续存储时,仍然存在。在我的母版页后面的代码中,我有以下内容。
背后
protected void Page_Init(object sender, EventArgs e) { // if authenticated, initialize session if (Request.IsAuthenticated) { // set stuff } }
母版代码时,我通过它调试首次命中Request.IsAuthenticated它是假的,那么它再次击中它,它是真实的。问题出在前端页面我有一些检查,看看用户是否已通过身份验证,并且在评估这些情况时是错误的。
母版前端
<% if (Request.IsAuthenticated) { %>
<li>Admin Page</li>
<% } %>
设置验证曲奇
FormsAuthentication.SetAuthCookie(username, false);
WEB.CONFIG
<authentication mode="Forms">
<forms
loginUrl="/"
name="ASPXFORMSAUTH"
timeout="360"
/>
</authentication>
摘要
- 的窗体身份验证Cookie仍然存在,当用户刚关闭/向下关闭 浏览器,即使它不是一个永久性的Cookie
- 如果用户有一个现有的窗体身份验证cookie时,他们加载了 网站Request.IsAuthenticated检查在调试器中的第一次打击时在 上评估为false,然后在第二次打击时为true。前端 页面明显检查这些事情在第一次打击,因为他们 评估为false。