我的角色提供者:
<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'类型的第一个参数 可以找到(你错过了使用指令或程序集 引用?)
答案 0 :(得分:0)
您正在混淆RoleProvider和Roles。虽然Roles
中有AddUserToRole方法,RoleProvider
只有AddUsersToRoles。
你应该使用
var roleProviderProduction = Roles.Providers["AspNetSqlRoleProviderProduction"];
roleProviderProduction.AddUsersToRoles(new string[]{username}, new string[]{role});
或
Roles.AddUserToRole(username, role);