删除Cookies注销
本文关键字:注销 Cookies 删除 | 更新日期: 2023-09-27 18:14:45
我有一个asp应用程序,我需要在注销的动作中删除所有当前会话的cookie:
public ActionResult Logout()
{
Upload.Models.CompteModels.Connected = false;
return RedirectToAction("Login", "Account");
}
现在我使用一个静态类CompteModels
和一个布尔值来测试用户是否正在进行身份验证,但这是不有效的。所以我想我必须在注销时删除所有cookie。
我该怎么做呢?
静态属性在所有用户之间共享,因此使用静态属性来确定用户是否已登录将无法正确工作,因为这会注销所有用户,或者登录他们。
您可以使用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
可以是管理区域或类似的东西。