ASP.NET MVC 응용 프로그램을 개발 중입니다. 최신 버전의 쿠키에 몇 가지 추가 정보를 저장하기 위해 일부 변경했습니다. 내 고객 중 몇 명이 여전히 이전 버전을 실행하고 있습니다. 기존 고객의 기존 쿠키를 만료시키고 IIS에서 호스팅되는 새 응용 프로그램에 연결할 때 다시 로그온하도록 할 수 있습니까?인증 쿠키를 삭제하는 방법
감사합니다,
ASP.NET MVC 응용 프로그램을 개발 중입니다. 최신 버전의 쿠키에 몇 가지 추가 정보를 저장하기 위해 일부 변경했습니다. 내 고객 중 몇 명이 여전히 이전 버전을 실행하고 있습니다. 기존 고객의 기존 쿠키를 만료시키고 IIS에서 호스팅되는 새 응용 프로그램에 연결할 때 다시 로그온하도록 할 수 있습니까?인증 쿠키를 삭제하는 방법
감사합니다,
당신은 SignOut 정적 인 방법을 사용할 수 있습니다
FormsAuthentication.SignOut();
이 사용자를 인증 쿠키를 제거하고 이후 요청에 대한 것은 인증되지 않습니다. 이 방법을 호출 한 후에는 리디렉션해야하므로 이후 단어를 강조했습니다.
어디에이 라인을 넣어야합니까? 나는이 줄을 어디에 넣을 지 사용자가 매번 로그온하도록 강제 할 것입니다 ... –
@SutikshanDubey, 사용자가 탐색 할 때 현재 사용자에게 서명하려는 일부 컨트롤러 동작에이 줄을 넣습니다. –
이것은 실제로 나를 위해 작동하지 않았지만 나를 흔적에 넣었습니다. aspnetdb를 다시 작성했지만 여전히 FormsAuthenticationCookie가 브라우저에있었습니다. 그때 나는 Request.Authenticated == true의 catch-22에 있었지만 GetUser()는 null을 리턴했다. 따라서 로그 아웃 할 사용자가 없습니다. 해결책은 브라우저의 모든 쿠키를 제거하는 것이 었습니다. –
내가 Web.config의 내 쿠키에 새로운 이름을 부여하고,이 내 문제를 해결하는 것 : -
<forms loginUrl="~/Account/LogOn" name="InsightWebMobileCookie2" timeout="10000" slidingExpiration="true" />
문제는 여기에 당신이 모르는 있도록 쿠키 만료 날짜를 읽을 수있다 이전 사용자가있는 쿠키에서.
그래서 옵션은 다음과 같습니다
이 코드를 global.asax의 Application_AuthenticateRequest 이벤트에 넣습니다. 이 시점에서 사용자는 자신의 쿠키를 확인할 수 있도록 인증되었습니다.
그냥 쿠키에 대한 날짜를 이미 예정된 날짜로 설정하면 .... 사용자가 다시 로그인하도록 보장합니다. –