0

已解决:该方法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>

如果有人能点亮一些灯,那就太好了。

4

1 回答 1

0

已解决:方法 public override string[] GetRolesForUser(string username) 错误地返回 null 作为数组的第一项。现在一切都好。

于 2012-08-27T05:27:27.943 回答