1

HttpModule では、次のように Item を Context に配置します。

HttpContext.Current.Items.Add("MyKey", "Hello world!");

このコードのすぐ下 (まだモジュール内) で、コレクションからこの文字列を取得できるので、追加されたことがわかります。

実際のハンドラー (Web フォーム -- .aspx) に早送りします。私はこのアイテムを取り戻そうとします:

string myString = HttpContext.Current.Items["MyKey"].ToString();

悲しいことに、それは NULL です -- アイテムはそこにありません。

コレクションをスピンし、ハンドラーに到達するまでに、Items コレクションには 2 つのキーがあります。

  • AspSession
  • AspSessionIDManagerInitializeRequestCalled

モジュールに Item を設定したら、RewritePath を呼び出します。それが何か関係があるかどうかはわかりません。

4

2 に答える 2

0

コードの流れはよくわかりませんが、HttpContext.Current.Items コレクションの代わりに HttpContext.Items を使用してみてください。このリンクをチェックしてください - http://odetocode.com/articles/111.aspx

于 2011-02-24T15:03:16.500 に答える
0

私の問題は、リダイレクトがそこに忍び込んだことでした。したがって、値を設定するリクエストと値を読み取るリクエストは、実際には2 つの別々のリクエストでした。デバッグしていても気付かないほど速くなりました。

于 2011-09-18T16:09:48.553 に答える