【问题标题】:How to delete a cookie at the click of logout in Asp.Net MVC3如何在 Asp.Net MVC3 中单击注销时删除 cookie
【发布时间】: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


    【解决方案1】:

    要清除 ASP.NET 中的 cookie,您需要设置一个具有相同名称但已过期的新 cookie。

    【讨论】:

    • 创建了一个新的 Cookie 并尝试设置 .AddDays(-1) public static bool logout() { HttpCookie MyCookie= new HttpCookie("MyCookie"); MyCookie.Expires.AddDays(-1);返回真; } 同样的错误继续 增加或减少的值会导致无法表示的 DateTime。参数名称:值
    • 试试MyCookie.Expries = DateTime.UtcNow.AddDays(-1)DateTime 是一种不可变类型,所以你所做的只是获得一个新的时间 - 它会溢出并引发异常。
    • 遗漏了一件小事。 HttpContext.Current.Response.Cookies.Add(reqCookies);只需要再次添加 cookie 感谢您的回复
    【解决方案2】:

    您可以为此使用 jquery cookie 脚本。

    <a href="" onclick="removeCookie();">logout button</a>
    
    function removeCookie(){
    $.cookie('cookiename', '');
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-26
      • 2012-10-01
      • 1970-01-01
      • 2015-03-12
      • 2016-06-03
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      • 2019-03-16
      相关资源
      最近更新 更多