我有一个 asp.net MVC3 应用程序,其中有两个用户 Admin 和 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 中的 cookie,您需要设置一个具有过期时间的同名新 cookie。
关于asp.net - 如何在 Asp.Net MVC3 中单击注销时删除 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8454815/