2017-02-14 1 views
0

내 역할 제공자 : C#을 역할에 여러 공급자의 캔트 통화 기능

<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를 호출하려고

:

Error 59 'System.Web.Security.RoleProvider' does not contain a definition for 'AddUserToRole' and no extension method 'AddUserToRole' accepting a first argument of type 'System.Web.Security.RoleProvider' could be found (are you missing a using directive or an assembly reference?)

+0

는'AddUsersToRoles'라는 방법이 아닙니다 사용해야합니까? – wkl

+0

no : https://msdn.microsoft.com/en-us/library/system.web.security.roles.addusertorole%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396 – atroul

+0

혼합되어 있습니다. [RoleProvider] (https://msdn.microsoft.com/en-us/library/system.web.security.roleprovider (v = vs.110) .aspx) 및 [역할] (https://msdn.microsoft. com/ko-us/library/system.web.security.roles (v = vs.110) .aspx). 아래 내 대답을 참조하십시오. – wkl

답변

0

당신은 혼합되어

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

나는이 오류 위로 RoleProviderRoles입니다. 방법은 에 AddUserToRole이지만, 은 AddUsersToRoles입니다.

당신은

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

또는

Roles.AddUserToRole(username, role); 
+0

왜? AddUserToRole은 AddUserToRole과 동일한 함수가 아닙니다. AddUserToRole을 특정 (기본값 아님) 역할 공급자와 함께 사용할 수없는 이유는 무엇입니까? 죄송합니다.이 글은'RoleProvider' 클래스에 정의되어 있지 않으므로 새로 입문되었습니다. – atroul

+0

. 물론 마이크로 소프트가 단일 사용자를위한 방법을 단일 역할로 정의 할 수는 있었지만 그렇게하지 않기로 결정한 것은 분명합니다. 어쨌든, 매개 변수를'string []'에 랩핑하고'AddUsersToRoles'를 호출하는 것은 문제가되지 않습니다. – wkl