내 사이트에서 사용자 로그인과 로그 아웃을 추적 할 수 있기를 원합니다.asp.net : FormsAuthentication.SignOut()가 쿠키 승인을 지우지 않음
그것에 대한 http 모듈을 작성했습니다.
로그인을 확인할 수 있습니다. 그러나 로그 아웃은 문제가 있습니다.
내 초기 생각은 Application_EndRequest 핸들러 내에서 쿠키가 파괴되었는지 확인하는 것이 었습니다. FormsAuthentication.SignOut()을 호출 한 후 요청 쿠키 컬렉션에 여전히 인증 쿠키가 포함되어 있으므로 좋지 않습니다.
// In Application_EndRequest
if (httpRequest.IsAuthenticated)
{
HttpCookie authCookie = httpRequest.Cookies[FormsAuthentication.FormsCookieName];
// Doesn't work. "authCookie" is always non-empty
if (authCookie == null || authCookie.Value == "")
{
//logout detected
}
}
else
{
HttpCookie authCookie = httpRequest.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
//login detected
}
}
올바른 방법이 아닌 경우 알려 주시기 바랍니다.
예, 같은 요청에있는 두 가지를 모두 호출합니다. 별도의 요청으로 쿠키를 확인하시는 것이 좋습니다. 하지만 쿠키는 항상 null이되지 않습니까? null 쿠키가 반드시 로그 아웃을 의미하는 것은 아닙니다. 익명 사용자에게는 예를 들어 쿠키가 없습니다. – Linas
'별도의 요청으로 쿠키를 확인하는 것이 좋습니다. '*** 예 ***. ***는 쿠키가 항상 null이 아니므로 클라이언트 컴퓨터의 쿠키가 설정되면 클라이언트 컴퓨터에서 쿠키를 직접 삭제할 수 없습니다 . 그러나 만료일을 과거 날짜로 설정할 수 있으며 유효 기간이 만료됩니다. 그런 다음 브라우저는 만료 된 쿠키를 나중에 정리합니다. 'FormsAuthentication.SignOut()'을 호출하면 충분합니다. 나는 쿠키가 삭제되는 것에 대해 걱정하지 않을 것입니다. – Win