【发布时间】:2011-12-10 06:12:31
【问题描述】:
我有一个带有两个用户 Admin 的 asp.net MVC3 应用程序,并且为这两个用户保存了 General.Cookies。 以下是我的 cookie 的保存方式。
Cookie.setCookie(No,DOB,User);
使用 setCookie 方法创建一个类 Cookie
public static void setCookie(int No,DateTime DOB,string User)
{
HttpCookie MyCookie= new HttpCookie("MyCookie");
MyCookie["No"] = No;
MyCookie["DOB"] = DOB;
MyCookie["User"] = User;
MyCookie.Expires.Add(new TimeSpan(0,30,0));
HttpContext.Current.Response.Cookies.Add(MyCookie);
}
以上是我的 Setcookie 代码。
MyCookie.Expires.Add(new TimeSpan(0,30,0));will give the default expiry time to 30 minutes.
我尝试的是,当用户单击注销时,cookie 应该被完全清除,并且用户不应该能够导航到站点的任何经过身份验证的部分。 我也试过这个但没用
MyCookie.Expires.Add(-1);
但我已经在我的 SetCookie 方法中尝试过。当用户单击注销时,我怎样才能清除 cookie。 我也尝试在 Cookie 类中创建一个注销方法,如下所示:
public static bool logout()
{
HttpCookie reqCookies = HttpContext.Current.Request.Cookies["MyCookie"];
reqCookies.Expires.AddDays(-1);
return true;
}
我在这里尝试使用已保存的 cookie 并通过设置 .AddDays(-1); 将其过期
我使用 if cookie.Logout()==true 并将其重定向到我的主页。
但它在运行时给了我以下错误
添加或减去的值会导致无法表示的 DateTime。
参数名称:值
关于如何实现我的目标的任何建议/指导。
【问题讨论】:
标签: asp.net asp.net-mvc-3