2013-11-26 4 views
20

일부 이유 때문에 FormsAuthentication.SignOut을 사용하는 대신 수동으로 인증 쿠키를 삭제해야합니다. 시도했습니다asp.net MVC 4의 쿠키를 수동으로 삭제하는 방법

System.Web.HttpContext.Request.Cookies.Remove(cookieName); // for example .ASPXAUTH 
System.Web.HttpContext.Response.Cookies.Remove(cookieName); // for example .ASPXAUTH 
FormsAuthentication.SignOut(); // I don't know why this one does not work 

해당 명령이 작동하지 않습니다. 실제로 응답 쿠키는 비어 있으며 요청 쿠키에는 다음 명령이 실행될 때 삭제하려는 쿠키가 포함되어 있습니다. 삭제 된 쿠키는 더 이상 포함되지 않지만 브라우저에는 쿠키가 여전히 존재하며 승인 된 사용자가 후에도 수행 할 수 있습니다 로그 아웃.

답변

47

시도 : MSDN

if (Request.Cookies["MyCookie"] != null) 
{ 
    var c = new HttpCookie("MyCookie"); 
    c.Expires = DateTime.Now.AddDays(-1); 
    Response.Cookies.Add(c); 
} 

더 많은 정보를 제공합니다.

+0

인증 쿠키를 수동으로 설정하는 데 사용했지만 이름이 폼 인증 쿠키 이름과 다릅니다. FormsAuthentication.SignOut()을 변경 한 후 실제로 작동했습니다. 어쨌든 고마워요 – Dimitri

+4

죄송합니다 ... http://stackoverflow.com/a/5122611/2436549 – Zafar