人々が .NET 2.0 Web アプリケーションにログインしてからのセッション開始時刻を記録していますが、セッション ID も記録したいと考えています。これを達成する方法 (Global.ASAX 内からセッション ID にアクセスする方法) のサンプル コードを教えてください。
追加情報が必要な場合は、お知らせください。
人々が .NET 2.0 Web アプリケーションにログインしてからのセッション開始時刻を記録していますが、セッション ID も記録したいと考えています。これを達成する方法 (Global.ASAX 内からセッション ID にアクセスする方法) のサンプル コードを教えてください。
追加情報が必要な場合は、お知らせください。
HttpContext.Current.Session.SessionID
nullテストを表示するように編集します。
if ((HttpContext.Current != null) && (HttpContext.Current.Session != null) {
id = HttpContext.Current.Session.SessionID
}
HttpContext.Current.Session.SessionId
おそらくすでにご存知のとおり、非常に簡単に取得できます。Application_AcquireRequestState
セッション状態が読み込まれる前にon または after である必要があり、セッション状態も、要求されたリソースが実装されている場合にのみ読み込まれ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 がユーザーのセッションを識別した後、最初の要求の時点で日時とセッション ID をセッションに書き込みます。
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;
}
}
}