문제를 이해하는 데 도움이되는 정보를 추가하고 싶었습니다. 양식 인증을 사용하면 쿠키 또는 URL의 쿼리 문자열에 사용자 데이터를 저장할 수 있습니다. 사이트가 지원하는 방법은 web.config 파일에서 구성 할 수 있습니다.
Microsoft에 따르면 :
SignOut 메소드는 CookiesSupported가 false 인 경우 쿠키 또는 URL에서 양식 인증 티켓 정보를 제거합니다 .
동시에 그들은 말합니다 :
응용 프로그램이 쿠키없는 양식 인증을 위해 구성되었는지 여부를 나타내는 HttpCookieMode 값 중 하나입니다. 기본값은 UseDeviceProfile입니다 .
마지막으로 UseDeviceProfile과 관련하여 다음과 같이 말합니다 .
CookieMode 속성이 UseDeviceProfile로 설정되어
있으면
현재 요청 의 브라우저가 쿠키와 쿠키로 리디렉션을 모두 지원 하는 경우 CookiesSupported 속성이 true를 반환합니다 . 그렇지 않으면 CookiesSupported 속성이 false를 반환합니다.
사용자 브라우저에 따라이 구성을 모두 적용하면 기본 구성으로 인해 CookiesSupported가 true 가 될 수 있습니다 . 이는 SignOut 메소드가 쿠키에서 티켓을 지우지 않음을 의미합니다. 이것은 직관적이지 않은 것처럼 보이며 왜 이런 식으로 작동하는지 모르겠습니다. 실제로 SignOut이 어떤 상황에서도 사용자를 로그 아웃 할 것으로 기대합니다.
SignOut 자체를 작동시키는 한 가지 방법은 web.config 파일에서 쿠키 모드를 "UseCookies"(즉, 쿠키가 필요함)로 변경하는 것입니다.
<authentication mode="Forms">
<forms loginUrl="~/Account/SignIn" cookieless="UseCookies"/>
</authentication>
내 테스트에 따르면 이렇게하면 쿠키가 제대로 작동하기 위해 사이트 비용으로 SignOut이 자체적으로 작동합니다.