我正在记录从人们登录到我的 .NET 2.0 Web 应用程序开始的会话开始时间,但我还想记录会话 ID。有人可以给我一些关于如何完成此操作的示例代码(如何从 Global.ASAX 中访问会话 ID)。
如果您需要任何其他信息,请告诉我。
我正在记录从人们登录到我的 .NET 2.0 Web 应用程序开始的会话开始时间,但我还想记录会话 ID。有人可以给我一些关于如何完成此操作的示例代码(如何从 Global.ASAX 中访问会话 ID)。
如果您需要任何其他信息,请告诉我。
HttpContext.Current.Session.SessionID
编辑以显示空测试:
if ((HttpContext.Current != null) && (HttpContext.Current.Session != null) {
id = HttpContext.Current.Session.SessionID
}
HttpContext.Current.Session.SessionId
正如您可能已经知道的那样,您可以非常简单地了解它。您需要在Application_AcquireRequestState
加载会话状态之前处于 on 或之后,并且会话状态也仅在请求的资源实现时加载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
在 ASP.NET 识别用户会话之后的第一个请求时,将 datetime 和 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;
}
}
}