我在我的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