c#角色多个提供商无法调用函数

时间:2017-02-14 12:52:44

标签: c# roleprovider

我的角色提供者:

<roleManager enabled="true" cacheRolesInCookie="true" cookieName=".ASPROLES" defaultProvider="AspNetSqlRoleProvider">
      <providers>
        <clear/>
        <add connectionStringName="ConnectionString1" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider,System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=xxx"/>
        <add connectionStringName="ConnectionString2" applicationName="/" name="AspNetSqlRoleProviderProduction" type="System.Web.Security.SqlRoleProvider,System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=xxx"/>
      </providers>
    </roleManager>

当我尝试调用AddUserToRole时:

var roleProviderProduction = Roles.Providers["AspNetSqlRoleProviderProduction"];
roleProviderProduction.AddUserToRole(username, role);

我收到此错误:

  

错误59'System.Web.Security.RoleProvider'不包含   'AddUserToRole'的定义,没有扩展方法'AddUserToRole'   接受'System.Web.Security.RoleProvider'类型的第一个参数   可以找到(你错过了使用指令或程序集   引用?)

1 个答案:

答案 0 :(得分:0)

您正在混淆RoleProviderRoles。虽然Roles中有AddUserToRole方法,RoleProvider只有AddUsersToRoles

你应该使用

var  roleProviderProduction = Roles.Providers["AspNetSqlRoleProviderProduction"];
roleProviderProduction.AddUsersToRoles(new string[]{username}, new string[]{role});

Roles.AddUserToRole(username, role);