1

ここステップ 5: カスタム プリンシパルの使用で概説されているように、カスタム プリンシパル アプローチを実装しました。

次に、カスタム プリンシパルで使用するためにデータベースからユーザー資格情報を取得しますが、これによりすべての要求に対してデータベース呼び出しが発生するため、当然、ユーザー オブジェクトをセッションまたはキャッシュのいずれかに保存することになります。

ただし、HttpContext.Current.Session内からアクセスできない Application_OnPostAuthenticateRequestように見えるため、キャッシュが適しているようです。

問題は、ここここの 2 つの回答が矛盾したアドバイスを提供していることです。最初にアドバイスするのは

いいえ、HttpCurrent.Current.Cache を使用してユーザー固有の情報を保存しないでください。キャッシュはすべてのユーザーに共通であり、競合が発生します。これはユーザーに固有であるため、代わりに HttpContext.Current.Session を使用してください。

そして2番目のアドバイス

セッションの代わりにキャッシュを使用する

では、どの方法が好ましいのでしょうか? メソッドからセッション オブジェクトにユーザー オブジェクトを挿入する方法を教えて
ください。進むべき道があると すれば、私はどんな問題に直面するでしょうか? たとえば、キャッシュに保持されているアイテムに時間制限はありますか? (ユーザーオブジェクトの一意のキーを使用して潜在的な競合を回避することを知っています)SessionApplication_OnPostAuthenticateRequest
Cache

4

1 に答える 1