2009-05-07 13 views
3

設定されている場合、asp.net RoleManagerは本当にクッキー内のユーザーのロールをキャッシュしますか?次のように私はロールマネージャが設定されている私のweb.configファイルで

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

をしかし、私たちの習慣で、GetRolesForUserメソッドは常に、むしろ私は、RoleManagerを期待していたとしてよりも、呼び出されているように見えるでしょうRo​​leProviderそのクッキーから役割を果たしています。

私たちは、ユーザーのロールを取得するようなものを使用している:

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

を私が構成で欠けているものがある、またはRoleManager

+1

コードサンプルに誤字があります。cacheRolesInCookie = "ture"です。 –

+0

デフォルトのプロバイダを指定することを除いて、あなたの設定のコピー&ペーストが私のために機能します。 –

+0

このリンクは、あなたが経験しているのと同じ問題を記述しているのでしょうか? http://connect.microsoft.com/VisualStudio/feedback/details/104688/rolemanager-cacherolesincookie-option-does-not-work私もこの問題を抱えています。カスタムロールマネージャーを使ってロールをクッキー。 –

答えて

4

あなたのweb.configにdefaultProvider="yourRoleProviderName"がありません。

以下の方法は、任意のユーザーまたは現在のユーザーに対してのみ呼び出しますか? Cookieのキャッシュは、現在のユーザーの役割に対してのみ機能します。クッキーを.ASPROLES

Role.GetRolesForUser("myuser"); 

チェックはIsInRoleまたはGetRoles方法の拳を呼び出した後、ブラウザに送信されます。

1

の使用ではありますcacheRolesInCookieの値をtrueに変更すると効果的です。

+0

typoはコードにはありませんでしたが、コードを再入力すると導入されました。 –

関連する問題