1

AD 認証を使用して、CRM 2011 でもあるユーザーのデータを表示する MVC Web サイトがあります。ユーザーの CRM 権限は CRM での役割によって決定されるため、現在、OnActionExecutingメソッドは実行ユーザーのドメイン名を取得し、CRM にクエリを実行します。役割。有効な役割がない場合は、代わりに無効な権限ビューが返されます。

CRM への呼び出しは遅く、すべての要求に対して実行する必要がある場合、コストが高くなる可能性があります。MVC 3 のリリース ノートを見ると、フィルターが積極的にキャッシュされていることがわかりますが、それが何を意味するのかよくわかりませんでした。

ドメイン名に基づいてユーザーの権利をキャッシュできるようにしたいのですが、それはすでに行われているように思えますか?

4

1 に答える 1

2

次のステートメントを参照している場合、この点を間違って理解していると思います。

ASP.NET MVC 3 では、フィルターはより積極的にキャッシュされます。したがって、インスタンスの状態を不適切に保存するカスタム アクション フィルターは壊れている可能性があります。

これは、フィルターの結果がキャッシュされるという意味ではありません。これは、フィルター自体がキャッシュされ、複数の要求で再利用されることを意味します。CRM プラグインに匹敵します。その中で状態を追跡するべきではありません。追跡する場合は、並行性の喜びに入らないように注意する必要があります。

あなたの場合、たとえばMemoryCacheを使用して、ユーザーの役割/権限を一定期間メモリにキャッシュします。

于 2013-02-12T12:32:24.887 に答える