2012-04-27 3 views
2

JavaScript를 사용하여 ASP.NET 인증 쿠키 (.ASPXAUTH)를 삭제할 수 있습니까? 서버 왕복없이 ASP.NET/JavaScript 모바일 응용 프로그램에서 Sign Out 기능을 구현하고 싶습니다. 그러나이 방법은 어떤 이유로 작동하지 않습니다.JavaScript를 사용하여 ASP.NET 인증 쿠키 (.ASPXAUTH)를 삭제할 수 있습니까?

document.cookie = '.ASPXAUTH=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; 

어떻게해야합니까?

감사합니다.

업데이트 : 알았습니다. HttpOnly 쿠키에 대해 읽었습니다. 바로 그 경우입니다. 방법은 위의 작동하지 않습니다 - ASP.NET은 단순히 명령을 무시 :

<httpCookies httpOnlyCookies="false"/> 

UPDATE : 쿠키 아닌 Http 만을 만들기 위해, (system.web 섹션)의 web.config에 다음 행을 추가합니다. 내가 Global.asax에이 해킹하고 결국 : 당신이 사용자를 signout하기 위해 쿠키를 삭제할 필요가 없습니다

protected void Application_EndRequest(Object sender, EventArgs e) 
{ 
    string cookieName = System.Web.Security.FormsAuthentication.FormsCookieName; 
    if (Response.Cookies.Count > 0) 
    { 
     foreach (string s in Response.Cookies.AllKeys) 
     { 
      if (s == cookieName) 
      { 
       Response.Cookies[cookieName].HttpOnly = false; 
      } 
     } 
    } 
} 
+1

나는 세션 상태 등을 정리하기 위해, 당신은뿐만 아니라 서버에서 로그 아웃하고 싶은 말은 것입니다. –

+0

글쎄, 자바 스크립트 클라이언트 응용 프로그램이므로 세션 상태를 사용하지 않습니다. 나는 인증과 REST API를 위해 서버 부분을 사용한다. –

+0

@Alex Avrutin 빠른 업데이트 주셔서 감사합니다 :). 자신의 질문에 대한 대답으로 게시하고 수락 할 수 있습니다. – Li0liQ

답변

0

을, 바로 어제에 가치를 "만료"로 설정하고, 붐, 사용자는이 로그 아웃되었습니다.

이 매우 도움이 블로그 게시물을 고려 : Using cookies in Javascript part 1

+3

고맙습니다.하지만 쿠키가 HttpOnly 인 경우에도 쿠키를 읽을 수 없으며 '만료'값을 수정할 수 없습니다. –

관련 문제