【问题标题】:Cookies logout razor removeCookies logout razor 删除
【发布时间】:2013-05-21 15:14:58
【问题描述】:

我有一个 ASP 应用程序,我需要在注销操作中删除所有当前会话的 cookie:

 public ActionResult Logout()
        {
            Upload.Models.CompteModels.Connected = false;
            return RedirectToAction("Login", "Account");
         }

现在我使用带有布尔值的静态类CompteModels 来测试用户是否正在验证,但它不是有效的。所以我认为我必须在注销时删除所有 cookie。

我该怎么做?

【问题讨论】:

  • 你用的是什么认证方式?
  • ` [AllowAnonymous] public ActionResult Login(string returnUrl) { string _login = Request.Params["Pseudo"]; string _password = Request.Params["Password"]; if (_login != null) { Upload.Models.LoginModel model = new LoginModel();字符串 s = model.authentifier(_login, _password); if (s != "false") { Upload.Models.CompteModels.Connected = true; return RedirectToAction("Index", "Admin"); } 否则返回视图(); } 其他 { 返回视图(); } }`
  • 我的意思是你是在使用表单、windows 还是其他一些身份验证方法
  • 您的登录方法看起来不正确。
  • 不,这是正确的,我正在登录没有问题。但我的问题是如何阻止浏览器中的返回:如果我已连接并单击浏览器中的返回按钮,我会留在同一页面,我不会重定向到身份验证页面

标签: c# asp.net asp.net-mvc razor


【解决方案1】:

静态属性在所有用户之间共享,因此使用静态属性来确定用户是否已登录将无法正常工作,因为这会注销所有用户或让他们登录。

您可以使用 Session.Abandon 放弃会话或使用 HttpResponse.Cookies 集合删除 cookie,并向其中写入过期的 cookie。

【讨论】:

  • 我认为 op 的问题比这个问题更深,我认为对 MVC 的根本缺乏理解是主要障碍,在审查了他们的其他问题后,似乎很明显他们并不真正了解 ASP .NET-MVC 有效。
【解决方案2】:

如果您的意思是删除会话数据并删除会话 cookie,请参阅here 了解如何操作。

【讨论】:

    【解决方案3】:

    您可以创建一个名为 LoggedIn 或类似的会话变量,然后在您的注销操作中将其清除。然后在您的登录操作中,您需要检查此会话。

     public ActionResult Logout()
     {
        Upload.Models.CompteModels.Connected = false;
        Session.Remove("LoggedIn");
        return RedirectToAction("Login", "Account");
     }
    
     public ActionResult Login()
     {
        // check for session var, redirect to landing page maybe?
        if(Session["LoggedIn"] == null) 
        {
           RedirectToAction("Home", "Index");
        }
        else
        {
           Session.Add("LoggedIn", true);
        }
        return RedirectToAction("TargetPage", "TargetAction");
     }
    

    只是一个想法,取决于您希望将用户重定向到的位置等,TargetPage 可能是管理区域或类似的东西。

    【讨论】:

      猜你喜欢
      • 2011-01-01
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      • 2015-08-08
      • 2023-04-02
      相关资源
      最近更新 更多