我在我的Global.asax中覆蓋了Application_AuthenticateRequest()以更好地理解事件流。我正在使用默認MVC2應用程序附帶的成員資格提供程序。HttpApplication事件流如何與成員資格和Cookie相關聯?
我想如果我這樣做:
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);
}
}
一個用戶可以登錄,但在網頁加載後,他們提交登錄表單,他們將顯示爲沒有登錄,因爲我破壞了他們的身份驗證的cookie 。
但事實並非如此。相反,他們可以成功登錄,並且會在頁面加載時顯示他們登錄。他們點擊的下一頁將會把它們註銷。
我以爲我沒有及時銷燬他們的cookie,所以我把這段代碼放到我的Global.asax中的Application_BeginRequest()中。它產生了相同的結果。
這是否意味着我還沒有及時銷燬他們的cookie,或者我沒有正確理解事件的流程?
這是有道理的。顯然,我認爲在發送迴應時,他們的cookie將被刪除,這會奇蹟般地追溯發回的響應。哈爾。我可以接受1頁關閉命中註銷。這就是說,是Application_AuthenticateRequest()這樣的邏輯的好位置? – Sgraffite 2011-01-09 18:10:19