我已经设置了我的第一个登录系统,并遵循:
https://stackoverflow.com/a/10524305
存储一些其他数据而无需多次到数据库。
我遇到的问题是,当cookie/票证到期时,用户仍然被视为身份验证?
例如:
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
authcookie为null,但
HttpContext.Current.User.Identity.IsAuthenticated
继续返回true。
有没有办法将饼干登录吗?
谢谢!
您可以尝试替换
httpcontext.current.user.identity.isauthenticated
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
if(authTicket.Expired) (...)
但这并不能解释为什么httpcontext.current.user.inderity.isauthenticated仍然设置为true。我首先要确保我的表单身份验证和会话到期在配置文件中设置为相同的值:
<authentication mode="Forms">
<forms cookieless="UseCookies"
//some configuration +
timeout="20">
</forms>
</authentication>
<sessionState mode="InProc" cookieless="false" timeout="20" />