3

私のweb.configでは、ロールマネージャーを次のように構成しています。

<roleManager enabled="true" cacheRolesInCookie="true" cookieName=".ASPROLES" 
cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" 
cookieSlidingExpiration="true" cookieProtection="All">

ただし、カスタムRoleProviderでは、予想していたように、RoleManagerがCookieからロールを提供するのではなく、GetRolesForUserメソッドが常に呼び出されているように見えます。

ユーザーのロールを取得するために次のようなものを使用しています。

string[] myroles = Role.GetRolesForUser("myuser");

構成またはRoleManagerの使用に欠けているものはありますか?

4

2 に答える 2

4

defaultProvider="yourRoleProviderName"web.configにありません。

以下のメソッドを任意のユーザーまたは現在のユーザーに対してのみ呼び出しますか?Cookieのキャッシュは、現在のユーザーロールに対してのみ機能します。

Role.GetRolesForUser("myuser");

IsInRoleまたはGetRolesメソッドの最初の呼び出しの後に、.ASPROLESCookieがブラウザに送信されることを確認します。

于 2010-11-22T13:12:00.583 に答える
1

の値をに変更すると、より適切に機能する可能性がありcacheRolesInCookieますtrue

于 2009-05-07T17:42:32.520 に答える