0

人々が .NET 2.0 Web アプリケーションにログインしてからのセッション開始時刻を記録していますが、セッション ID も記録したいと考えています。これを達成する方法 (Global.ASAX 内からセッション ID にアクセスする方法) のサンプル コードを教えてください。

追加情報が必要な場合は、お知らせください。

4

3 に答える 3

4

HttpContext.Current.Session.SessionID

nullテストを表示するように編集します。

if ((HttpContext.Current != null) && (HttpContext.Current.Session != null) {
  id = HttpContext.Current.Session.SessionID
}
于 2010-02-05T19:48:04.647 に答える
1

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

于 2010-02-05T19:55:05.640 に答える
0

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;
        }
    }
}
于 2010-02-05T20:21:03.380 に答える