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

标签 asp.net asp.net-mvc-3

我有一个 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/

相关文章:

c# - 用于 ASP.Net 中不同版本 Excel 的连接字符串

asp.net - 单选按钮未在转发器中触发 itemcommand 事件

c# - 构建全新系统时应该采用什么方法/设计路径?

asp.net-mvc-3 - 提交后的mvc3复选框值

c# - 在ASP.NET Core 2和Entity Framework Core 2中查询表中附近的位置

c# - ASP.NET 网站项目构建但发布时出错

c# - 使用 Razor 内联设置 javascript 变量,这是好的做法/安全吗?

visual-studio - VS 2010 似乎没有与 Razor 相关联(没有突出显示或智能感知)

javascript - 防止加载无限循环

html - 在编辑器/显示模板中使用部分