ロールが変更されたときにASP.NETサイトのサイトマップベースのメニューを更新する

StackOverflow https://stackoverflow.com/questions/1422154

質問

ASP.NETサイトマップをカスタムで使用していますユーザーロールに応じて利用可能なリンクを表示するサイトメニューを生成するロールプロバイダー。

これは、ユーザーがログインしている間にロールが変更されない場合に正常に機能します。 ユーザーがログインしている間にロールが変更された場合、メニューは自動的に更新されません(チェックし、Roles.GetRolesForUser()はログイン時にのみ呼び出されます)。これにより、ユーザーは表示する権限のないサイトの領域にアクセスできます。このアクセスは視覚的(表示されているメニュー項目の形式)だけでなく、Web.configで定義されているアクセス制限も適用されていません。

ロールが変更されたときにメニュー/アクセス制御の更新をトリガーする方法はありますか?または、強制的にログアウトする必要がありますか?

事前に感謝

編集:ロールマネージャーcacheRolesInCookieが有効になっていることに気付きました。つまり、GetRolesForUser()は1回だけヒットし、Cookieを使用してさらにロールチェックが行われました。 Cookieをプログラムで更新する方法、またはキャッシュをオフにして生きる必要がありますか? Cookieを削除するだけで解決するかもしれません。

役に立ちましたか?

解決

正常に機能する非キャッシュバージョンに移行しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top