我有一个带有两个用户的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方法中试过了。如何在用户点击Logout时清除cookie。 我也尝试在Cookie类中创建一个Logout方法,如下所示:
public static bool logout()
{
HttpCookie reqCookies = HttpContext.Current.Request.Cookies["MyCookie"];
reqCookies.Expires.AddDays(-1);
return true;
}
此处我正在尝试使用已保存的Cookie并通过设置.AddDays(-1);
使其过期
我正在使用if cookie.Logout()==true
并将其重定向到我的主页。
但它在RunTime上给了我以下错误
添加或减去的值会导致无法表示的DateTime。
参数名称:值
关于如何实现目标的任何建议/指导。
答案 0 :(得分:8)
要清除ASP.NET中的cookie,您需要设置一个具有相同名称且具有过期时间的新cookie。
答案 1 :(得分:1)
您可以使用jquery cookie脚本。
<a href="" onclick="removeCookie();">logout button</a>
function removeCookie(){
$.cookie('cookiename', '');
}