ロールが変更されたときにASP.NETサイトのサイトマップベースのメニューを更新する
-
07-07-2019 - |
質問
ASP.NETサイトマップをカスタムで使用していますユーザーロールに応じて利用可能なリンクを表示するサイトメニューを生成するロールプロバイダー。
これは、ユーザーがログインしている間にロールが変更されない場合に正常に機能します。 ユーザーがログインしている間にロールが変更された場合、メニューは自動的に更新されません(チェックし、Roles.GetRolesForUser()はログイン時にのみ呼び出されます)。これにより、ユーザーは表示する権限のないサイトの領域にアクセスできます。このアクセスは視覚的(表示されているメニュー項目の形式)だけでなく、Web.configで定義されているアクセス制限も適用されていません。
ロールが変更されたときにメニュー/アクセス制御の更新をトリガーする方法はありますか?または、強制的にログアウトする必要がありますか?
事前に感謝
編集:ロールマネージャーcacheRolesInCookieが有効になっていることに気付きました。つまり、GetRolesForUser()は1回だけヒットし、Cookieを使用してさらにロールチェックが行われました。 Cookieをプログラムで更新する方法、またはキャッシュをオフにして生きる必要がありますか? Cookieを削除するだけで解決するかもしれません。
解決
正常に機能する非キャッシュバージョンに移行しました。
所属していません StackOverflow