如何在Asp.Net MVC3中单击注销时删除cookie
我有一个asp.net MVC3应用程序,有两个用户Admin和General。Cookie是为这两个用户保存的。 下面是如何保存我的cookies如何在Asp.Net MVC3中单击注销时删除cookie,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我有一个asp.net MVC3应用程序,有两个用户Admin和General。Cookie是为这两个用户保存的。 下面是如何保存我的cookies Cookie.setCookie(No,DOB,User); 使用方法setCookie创建一个类Cookie public static void setCookie(int No,DateTime DOB,string User) { HttpCookie MyCookie= new HttpCo
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)使其过期代码>
我使用ifcookie.Logout()==true
并将其重定向到我家。
但它在运行时给了我以下错误
加上或减去的值会导致无法表示的日期时间。
参数名称:值
关于如何实现目标的任何建议/指导。要清除ASP.NET中的cookie,您需要设置一个新的cookie,该cookie的名称与过期时间相同。您可以使用jquery cookie脚本
<a href="" onclick="removeCookie();">logout button</a>
function removeCookie(){
$.cookie('cookiename', '');
}
函数removeCookie(){
$.cookie('cookiename','');
}
创建了一个新的Cookie并尝试设置.AddDays(-1)public static bool logout(){HttpCookie MyCookie=New HttpCookie(“MyCookie”);MyCookie.Expires.AddDays(-1);return true;}相同的错误继续出现,添加或减去的值会导致无法表示的日期时间。参数名称:valueTrymycokie.Expries=DateTime.UtcNow.AddDays(-1)
DateTime
是一个不可变的类型,所以您只需获取一个新时间,它就会溢出,并引发异常。缺少一个小东西。HttpContext.Current.Response.Cookies.Add(reqCookies);只是需要再次添加cookie谢谢回复