【问题标题】:How can i retrieve Session ID from particular Session Variable我如何从特定的会话变量中检索会话 ID
【发布时间】:2012-09-10 10:04:17
【问题描述】:

我想在 C# 中检索特定会话变量的会话 ID。

Session["OrderDetailList"] = OrderDetailsList;

我正在尝试的是,我想将 List 保存在会话中,并且还想将其会话 ID 存储在 cookie 中。

此外,当我从 cookie 中检索会话 ID 时,我可以保存会话变量的值,该变量具有从 cookie 中检索的会话 ID。

我们该怎么做?

【问题讨论】:

  • SessionID 是针对整个 Session 而不是针对特定的会话变量。在上面的示例中,列表本身没有任何唯一的会话 ID。会话 ID 是唯一的,并且对于存储在该特定会话中的所有值都是共享的。另外,您能否澄清一下您的最后一句话 - 至少我觉得它特别令人困惑
  • 我的第二句最后一句话意味着我必须从 Cookie 中检索会话 ID,并且从该会话 ID 中我们可以获取会话值
  • 好的。我认为如何检索 SessionID 已经在 KnowledgeSeeker 以及下面的 AVD 答案中得到解答。此外,要获取会话值,例如:OrderDetailsList,您根本不需要使用 SessionID。只做 Session["OrderDetailList"] 就足够了

标签: c# asp.net c#-4.0


【解决方案1】:

如何从特定会话变量中检索会话 ID?

没有。你不能。阅读MSDN document for more info.

Session默认使用cookie保存SessionID,你可以通过以下方式获取SessionID Session 服务器代码中的对象。

【讨论】:

    【解决方案2】:
    / In a user control or page
    string sessionId = this.Session.SessionID; 
    
    // In a normal class, running in a asp.net app.
    string sessionId = System.Web.HttpContext.Current.Session.SessionID;
    

    除此之外,我还建议查看这篇好文章

    Exploring Session in ASP.NET

    【讨论】:

    • ok 我如何从会话 ID 中找到会话变量。是否可以从会话 ID 中获取会话变量
    • 您可以使用正则表达式进行全局搜索 类似这样的事情可能会奏效(?:Session\[.+\]\s*=|Session.Add) 第一部分涵盖由分配创建的会话变量: Session["MyVarName"] = myValue 第二部分涵盖创建的会话变量使用 Add 方法:Session.Add("MyVarName", myValue)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 2015-08-11
    • 1970-01-01
    相关资源
    最近更新 更多