【问题标题】:Session null in C# MVCC# MVC 中的会话为空
【发布时间】:2025-12-02 17:30:01
【问题描述】:

当我注销时,我想在一个语句中使所有会话为空。谁能告诉我如何使所有会话为空。目前我正在使会话为空,如下所示:

Session["UserID"]=null; 
Session["UserName"]=null; 
Session["Photo"]=null;

【问题讨论】:

  • 不是完全重复,但答案可能在这里:*.com/q/3551178/1220550
  • 只需使用Session.Clear(); 如果您正确描述了您的问题,很容易找到:您不想让“会话为空”,您想重置所有会话变量。

标签: c# session model-view-controller


【解决方案1】:

这个例子可以完成这项工作:

Session["UserID"] = "test1 value";
Session["UserName"] = "test2 value";
Session["Photo"] = "test3 value";

foreach (string key in Session.Keys)
{
     Session.Remove(key);
}

Response.Write(Session["UserID"]);
Response.Write(Session["UserName"]);
Response.Write(Session["Photo"]);

这也可以使用 linq 完成,就像这里一样。

var sessionsToRemove = Session.Keys.Cast<string>().ToList();
foreach (var key in sessionsToRemove)
{
    Session.Remove(key);
}

【讨论】:

  • 或者你可以打电话给Session.Clear()
  • 感谢您的宝贵回复。
【解决方案2】:

你可以试试这个:

 HttpSessionState session = HttpContext.Current.Session;
 session.RemoveAll();

【讨论】:

  • 感谢您的回复。