删除Cookies注销

本文关键字:注销 Cookies 删除 | 更新日期: 2023-09-27 18:14:45

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

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

现在我使用一个静态类CompteModels和一个布尔值来测试用户是否正在进行身份验证,但这是不有效的。所以我想我必须在注销时删除所有cookie。

我该怎么做呢?

删除Cookies注销

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

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

如果您的意思是删除会话数据并删除会话cookie,请参阅此处

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

 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可以是管理区域或类似的东西。