【发布时间】:2011-01-09 05:34:55
【问题描述】:
我在 Global.asax 中覆盖了 Application_AuthenticateRequest() 以尝试更好地理解事件流。我正在使用默认 MVC2 应用程序附带的 Membership Provider。
我想如果我这样做:
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,还是我没有正确理解事件的流程?
【问题讨论】:
标签: c# asp.net-mvc-2 cookies asp.net-membership