如何在Asp.Net MVC3中单击注销时删除cookie

如何在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

我有一个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 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
并将其重定向到我家。 但它在运行时给了我以下错误 加上或减去的值会导致无法表示的日期时间。 参数名称:值


关于如何实现目标的任何建议/指导。

要清除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;}相同的错误继续出现,添加或减去的值会导致无法表示的日期时间。参数名称:valueTry
mycokie.Expries=DateTime.UtcNow.AddDays(-1)
DateTime
是一个不可变的类型,所以您只需获取一个新时间,它就会溢出,并引发异常。缺少一个小东西。HttpContext.Current.Response.Cookies.Add(reqCookies);只是需要再次添加cookie谢谢回复