문제

ASP.NET Forms 인증으로 작업하는 동안 .aspxauth 쿠키를 발견했습니다. 몇 가지 질문이 있습니다.

  • 이 쿠키의 목적은 무엇입니까?
  • 이 쿠키의 위치는 무엇입니까?
도움이 되었습니까?

해결책

Aspxauth 쿠키는 사용자가 인증 된 지 확인하는 데 사용됩니다.

쿠키의 위치까지는 브라우저에 따라 다릅니다. Firefox를 사용하는 경우 도구 -> 옵션 -> 개인 정보를 클릭하여 쿠키를 볼 수 있습니다. 그런 다음 도메인으로 스크롤하여 쿠키와 그 값을 볼 수 있도록 확장하십시오. 값은 컴퓨터 키 (서버의 machine.config 또는 web.config 파일에있는)를 사용하여 암호화되므로 클라이언트의 쿠키를 보면 정보가 실제로 제공되지 않습니다. 다음을 사용하여 서버 측의 값을 해독/볼 수 있습니다.

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

어디 authTicket 이 필드가 있습니다.

enter image description here

"ASPXAUTH는 기본적으로 ASP.NET 세션 상태를 유지하는 데 사용됩니다"는 올바르지 않습니다. ASP.NET은 세션 상태를 추적하기 위해 ASP.NET_SESSITEID라는 완전히 다른 쿠키를 발행합니다.

다른 팁

실제로 .aspxauth 쿠키는 사용자가 진정으로 인증 된시기를 정확하게 알려주지 않습니다. 사용자가 앱에서 로그 아웃하면 .aspxauth 쿠키가 브라우저에서 제거됩니다. 그러나 짧은 시간 내에 사이트로 돌아가서 (Form Auth Cookie의 시간 초과) 새로운 asp.net_sessionid 쿠키를 다음과 함께 편집하면 다음과 같습니다.

  • "asp.net_sessionid"로 "이름"필드를 ".aspxauth"로 변경하십시오.
  • 24 char sessionid에서 오래된 448 Char Authentication String으로 "value"변경

새로 고침 후 기술적으로 다시 인증하지 않고 인증 된 사용자의 신원을 가정 할 수 있습니다. (다시 말하면 .aspxauth 암호화 인증 문자열 내에 저장된 특정 시간 초과 내 에서이 작업을 수행한다고 가정합니다)

좋은 블로그 게시물은 문제를보다 자세히 설명합니다. 가능한 해결책은 .aspxauth를 ASP 세션과 결합하는 것입니다.

사용자와 HTML 로그인 URL과의 상호 작용으로 TSWPPServer가 사용자의 ID를 설정할 수있게 한 경우 원격 서버는 사용자를 식별하는 쿠키를 생성하고 서버에 대한 인증을 허용해야합니다. 쿠키의 내용물에 서명하고 암호화해야합니다. 서명 및 암호화 알고리즘을 포함한이 쿠키의 구체적인 구현은 쿠키의 내용을 구문 분석해야하기 때문에 TSWPP 서버의 구현에 따라 다릅니다. 서버가 쿠키를 구현하는 경우 쿠키는 "Application/X-MSTS-WebFeed-Login"의 컨텐츠 유형과 함께 HTTP 페이로드로 반환해야합니다.

http://msdn.microsoft.com/en-us/library/ee920427.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top