2009-07-01 13 views
1

Roles.GetRolesForUser( "username")を実行すると、ロールが正しく返されますが、ADのロールにユーザーを追加すると、結果がログに記録されるまで表示されませんユーザーがシステムから抜け出し、再度ログインするようにしてください。Roles.GetRolesForUser()の結果がキャッシュされます

毎回システムを再確認する方法はありますか?

答えて

3

組み込みロールプロバイダを使用している場合は、web.configにcacheRolesInCookieを変更する設定があります。私はそれがデフォルトで本当だと信じています。

これはもちろん、(もちろんdbを使用している場合は)ロールルックアップが発生するたびにデータベースのルックアップが必要になるため、これはお勧めできません。 それ以外の場合は、あなた自身のプロバイダを書く必要があると思いますが、これは非常に簡単です。 RoleProviderから継承する新しいクラスを作成し、独自の実装を提供してください。あなたの実装ではキャッシュを扱うことができます。

組み込みロールプロバイダの内部動作を確認するには、Reflectorをダウンロードします。それは素晴らしいツールです。

EDIT

申し訳ありませんが、私再度読んで、あなたはADを使用していることに気づきました。ですから、web.configのプロバイダ設定に変更を加えても問題ありません。

関連する問題