已解决:该方法public override string[] GetRolesForUser(string username)
错误地将 null 作为数组的第一项返回。现在一切都好。
我正在尝试为我的应用程序实现自定义角色和成员资格提供程序,但对角色提供程序没有运气。在我的控制器的一种方法中,如果我有[Authorize]
指令,它工作正常,但是当我想通过添加[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>
如果有人能点亮一些灯,那就太好了。