2017-09-29 8 views
3

HttpContext.Items["Username"] = "adam";と設定してください。 HttpContext.Items["Username"]は、各要求に対して一意になるか、要求間で重複する可能性がありますか?asp.netコアのリクエスト間でHttpContext.Itemsが共有されていますか?

+1

いいえしないでください。 HttpContext.Items Itemsコレクションは、1つの特定の要求の処理中にのみ必要なデータを格納するのに適しています。コレクションの内容は、リクエストごとに破棄されます。 Itemsコレクションは、コンポーネントやミドルウェアが要求時に異なる時点で動作し、パラメータを渡す直接的な方法がない場合に通信するための手段として最もよく使用されます。詳細については、この記事の後半の「HttpContext.Itemsの操作」を参照してください。 (ASP.NET Coreサイトから) –

+0

私は理由はわかりませんが、要求の向こう側にそれらが残っているのを見ているので、アイテム辞書の使用を中止しました。 –

答えて

2

asp.netコアのリクエスト間でHttpContext.Itemsが共有されていますか?

短い答え:ません

HttpContext.Items

での作業documentation

を引用するHttpContext抽象化は、タイプIDictionary<object, object>の辞書コレクションの サポートを提供Items。このコレクションは、 のHttpRequestの先頭から入手でき、各リクエストの最後に破棄されます。 にアクセスするには、キー付きエントリに値を割り当てるか、または特定のキーの値を に要求します。

リファレンスIntroduction to session and application state in ASP.NET Core

アイテムは、各リクエストの終了時に破棄され、現在の要求のためにのみ関連しているので。

+0

答えをありがとう。私がクラスに 'IHttpContextAccessor'型の静的プロパティを持っていて、その静的プロパティを使って' IHttpContextAccessor.HttpContext.Items'にアクセスしようとすると、それは私の要求ごとに正しい値を返しますか? – user3219798

+1

@ user3219798提供されるコンテキストは、現在の要求のコンテキストになります。 'IHttpContextAccessor'は通常、シングルトン(静的)として登録されます。 – Nkosi

関連する問題