解決済み: メソッドpublic override string[] GetRolesForUser(string username)
は、配列の最初の項目として誤って null を返していました。すべて問題ありません。
アプリケーションにカスタム ロール プロバイダーとメンバーシップ プロバイダーを実装しようとしていますが、ロール プロバイダーがうまくいきません。コントローラーのメソッドの 1 つで、[Authorize]
ディレクティブがある場合は正常に動作しますが、追加してロール ベースの認証を行うと、 「キーを null にすることはできません」[Authorize(Roles = "Admin")]
というエラーが表示されます。パラメータ名: key' .
web.configファイルの全体に何か問題があると思いますが、それが何であるかを見つけることができません。web.config ファイルの変更されたエントリは次のようになります。
<membership defaultProvider="CustomMembershipProvider">
<providers>
<clear />
<add name="CustomMembershipProvider" type="eLibrary.Models.CustomMembershipProvider" connectionStringName="AppDb" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
</providers>
</membership>
<roleManager defaultProvider="CustomRoleProvider" enabled="true" cacheRolesInCookie="true" >
<providers>
<clear/>
<add name="CustomRoleProvider" type="eLibrary.Models.CustomRoleProvider" />
</providers>
</roleManager>
誰かがいくつかのライトを投げることができれば素晴らしいでしょう.