asp.net RoleManagerは、設定されている場合、Cookieのユーザーのロールを実際にキャッシュしますか?

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

  •  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 に変更すると、うまく機能する可能性があります。

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