代码之家  ›  专栏  ›  技术社区  ›  Albert

ASP.NET-从global.asax中获取sessionid

  •  0
  • Albert  · 技术社区  · 15 年前

    我记录的会话开始时间是从人们登录到我的.NET 2.0 Web应用程序时开始的,但我还想记录会话ID。有人能给我一些关于如何完成此操作的示例代码(如何从global.asax中访问会话ID)吗?

    如果你需要更多的信息,请告诉我。

    3 回复  |  直到 15 年前
        1
  •  4
  •   Ray    15 年前

    httpContext.current.session.sessionID

    编辑以显示空测试:

    if ((HttpContext.Current != null) && (HttpContext.Current.Session != null) {
      id = HttpContext.Current.Session.SessionID
    }
    
        2
  •  1
  •   Community CDub    9 年前

    你只需 HttpContext.Current.Session.SessionId 你可能已经知道了。你需要在上或者之后 Application_AcquireRequestState 在加载会话状态之前,并且仅当请求的资源实现时才加载会话状态 IRequiresSessionState . 您可以在global.asax中看到所有事件的列表: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5771721.html 阅读更多关于 iRequiressessionState(要求状态) 在这里: http://msdn.microsoft.com/en-us/library/system.web.sessionstate.irequiressessionstate.aspx

        3
  •  0
  •   lance    15 年前

    在ASP.NET标识用户会话后的第一个请求出现时,向会话写入日期时间和sessionid。

    protected void Application_PreRequestHandlerExecute(object sender, EventArgs eventArgs) {
        var session = HttpContext.Current.Session;
        if (session != null) {
            if (session["foo"] == null) {
                session["foo"] = DateTime.Now.Ticks + "|" + session.SessionID;
            }
        }
    }