2009-09-17 35 views
0

ASP.NETでは、global.asaxファイルのSession_EndイベントでCookie値を取得するにはどうすればよいですか? 次のコードは、例外をスローしてASP.NET global.asaxのsession_endイベントでCookie値にアクセスする

string cookyval = ""; 
    try 
    { 
     cookyval = Context.Request.Cookies["parentPageName"].Value; 
    } 
    catch (Exception ex) 
    { 
     cookyval = ""; 
    } 

任意のアドバイス「オブジェクト参照がオブジェクトのインスタンスに設定されていませんか」?

答えて

3

のSession_Endイベントは、IISワーカープロセスではなく、HTTPリクエストによって起動されます。したがって、HttpContextはnullになり、クライアントのCookieを設定できなくなります。

は、より多くの詳細については、このブログ記事を参照してください。http://www.vikramlakhotia.com/Mystries_of_when_does_Session_End_event_fires_in_AspNet.aspx

・ホープ、このことができます。

+0

リンクが死んでいます。 – philw

0

これが可能かどうかわかりません。

Session_Endが発生した時点でリクエストはもう有効ではありません。

申し訳ありませんが、

ダン

0

Session_Endはユーザーリクエストのコンテキストでは実行されないため、Cookie(またはその他のリクエスト変数)にアクセスすることはできません。

あなたがセッションに値を入れた場合、私はあなたがそれにアクセスすることができると思う:

string cookyval = ""; 
try 
{ 
    cookyval = (string)Session["parentPageName"]; 
} 
catch (Exception ex) 
{ 
    cookyval = ""; 
} 

そうでなければ、(データベースのような)いくつかの他のサーバ側のストレージに書き込む必要があると思います。

関連する問題