Global.asax에서 Application_AuthenticateRequest()를 오버로드하여 이벤트 흐름을 더 잘 이해하려고했습니다. 기본 MVC2 응용 프로그램과 함께 제공되는 멤버 자격 공급자를 사용하고 있습니다.HttpApplication 이벤트 흐름은 멤버십 및 쿠키와 어떤 관련이 있습니까?
나는이 그랬다면 내가 생각 :
public void Application_AuthenticateRequest(object sender, EventArgs args)
{
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
authCookie.Expires = System.DateTime.Now.AddDays(-1); // Set the cookie expires time in order to delete it
Response.Cookies.Add(authCookie);
}
}
사용자가 로그인 할 수 있지만 내가 그들의 인증 쿠키를 파괴하기 때문에 그들은 로그인 양식을 제출 한 후 페이지 로딩에, 그들은 같은 로그인하지 나타날 것을 .
그러나 그런 경우는 아닙니다. 대신 성공적으로 로그인 할 수 있으며 페이지가로드 될 때 로그인 상태를 표시합니다. 그들이 쳤던 다음 페이지는 로그 아웃 할 것입니다.
시간이 지나면 쿠키가 삭제되지 않는다고 생각하여 Global.asax 내부의 Application_BeginRequest()에 코드를 삽입했습니다. 그것은 같은 결과를 낳았다.
그래도 제 시간에 쿠키를 파괴하지 않았거나 이벤트 흐름을 제대로 이해하지 못 했습니까?
그건 의미가 있습니다. 분명히 나는 응답을 돌려 보낼 때 그들의 쿠키가 삭제 될 것이라고 생각했다. 그것은 마술처럼 소급하여 응답이 되돌아 오는 것에 영향을 미칠 것이다. Har har. 나는 로그 아웃하기 위해 1 페이지의 히트와 함께 살 수있다. 즉, Application_AuthenticateRequest()는 이와 같은 논리에 적합한 위치입니까? – Sgraffite