asp.net RoleManagerは、設定されている場合、Cookieのユーザーのロールを実際にキャッシュしますか?
-
08-07-2019 - |
質問
web.configでは、ロールマネージャーを次のように構成しています:
<roleManager enabled="true" cacheRolesInCookie="true" cookieName=".ASPROLES"
cookieTimeout="30" cookiePath="/" cookieRequireSSL="false"
cookieSlidingExpiration="true" cookieProtection="All">
ただし、カスタムRoleProviderでは、期待どおりにCookieからロールを提供するRoleManagerではなく、GetRolesForUserメソッドが常に呼び出されているようです。
ユーザーのロールを取得するためなどを使用しています:
string[] myroles = Role.GetRolesForUser("myuser");
設定、またはRoleManagerの使用で不足しているものがあります
解決
web.configに defaultProvider =&quot; yourRoleProviderName&quot;
がありません。
任意のユーザーまたは現在のユーザーのみに対して以下のメソッドを呼び出しますか? Cookieキャッシュは、現在のユーザーロールに対してのみ機能します。
Role.GetRolesForUser("myuser");
IsInRole
または GetRoles
メソッドの最初の呼び出し後に.ASPROLES Cookieがブラウザーに送信されることを確認します。
他のヒント
cacheRolesInCookie
の値を true
に変更すると、うまく機能する可能性があります。
所属していません StackOverflow