2010-12-20 8 views
1

일부 만료 시간 만료 확인을 설정하려고하는데 좀 이상해 보입니다. 인증 기간이 여전히 유효하면, 다음 코드는 나에게 쿠키를 줄 것이다 :ASP.NET : 인증 기간이 만료되면 FormsCookie가 사라 집니까?

HttpCookie authCookie = context.Request.Cookies[".ASPXAUTH"]; // .ASPXAUTH name defined in web.config 

그러나 인증 기간이 만료되면, 쿠키는 쿠키 배열에 더 이상, 내 결과는 null입니다. 만료 된 속성을 확인할 수 있도록 쿠키에서 FormsAuthenticationTicket 개체를 작성하려고합니다. 이처럼 :

FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value); 

// check if previously authenticated session is now dead 
if (authTicket != null && authTicket.Expired) 
{ 
    // send a Response indicating that they've expired. 
} 

그러나 인증 기간이 만료되면 쿠키가 사라지는 지, 심지어 멀리 얻을 수

. 그래서 제가 잘못하고있는 일이 있습니까, 아니면 그곳에 있지 않은 쿠키입니까? 그리고 만약 아니라면, 어떻게 티켓을 만들겠습니까 Expired 속성을 확인 하시겠습니까?

대단히 감사합니다.

+0

이중 게시물 : http://stackoverflow.com/questions/4490650/asp-net-why-is-formsauthenticationticket-null-after-authentication-timeout/4491304#4491304 – gbs

답변

0

쿠키의 구성 파일에 지정할 수있는 만료 시간 제한 값이 있습니다. 쿠키가 만료되는 시점에 대한 많은 경고는 없습니다. 당신은 모든 요청이 만료 된 요청을 확인하는 프로세스를 만들 수 있습니다.

그러나 유효한 요소 (익명이 아닌)가 필요할 수도 있으므로 요소를 고려해야합니다. 따라서 쿠키가 없으면 쫓겨날 수 있습니다.

여기에 대해 자세히 알아보기 : http://support.microsoft.com/kb/910443

0

을 isPersistent이 다음은 FormsAuthenticationTicket에 false로 설정되어 영구 쿠키가 설정되지 않은 경우. 티켓이 만료되면 요청과 함께 쿠키가 전송되지 않으므로 액세스 할 수 없습니다.

관련 문제