0

내가 설정 처음 로그인 시스템을 가지고 따랐다 만료 :MVC - 여전히 쿠키 후 인증 된 사용자는

https://stackoverflow.com/a/10524305

가 데이터베이스에 여러 여행을하지 않고도 몇 가지 추가 데이터를 저장합니다.

쿠키/티켓이 만료되면 사용자는 여전히 인증 된 것으로 보입니다.

예를 들어

:

HttpContext.Current.User.Identity.IsAuthenticated 

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; 

authCookie가 null이지만,

는 true를 반환하고 있습니다.

쿠키가 만료 된 경우 강제로 로그 아웃하는 방법이 있습니까?

감사합니다.

답변

0

당신은

HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName]; 
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); 
if(authTicket.Expired) (...) 

HttpContext.Current.User.Identity.IsAuthenticated

를 대체하기 위해 시도 할 수 그런데 왜이 HttpContext.Current.User을 설명하지 않습니다. Identity.IsAuthenticated는 여전히 true로 설정됩니다. 나는 먼저 내 폼 인증 및 세션 만료가 구성 파일에서 동일한 값으로 설정되어 있는지 확인합니다 :

<authentication mode="Forms"> 

<forms cookieless="UseCookies" 
      //some configuration + 
      timeout="20"> 

</forms> 

</authentication> 

<sessionState mode="InProc" cookieless="false" timeout="20" /> 
+0

씽크 IV가 그것을 해결, 두 개의 쿠키가 있습니다. 로그인 한 사용자와 추가 데이터 용으로 하나. 하나에 만료를 설정했지만 다른 설정에는 사용하지 않았습니다. – Elliott