0
런타임에 RoleProvider를 설정할 수 있어야합니다. 나는 그것이 어디서 왔는지도 모릅니다 - 느슨하게 결합 된 의존성 삽입을 사용하고 있습니다 - 그래서 심지어 web.config 파일에 정의 할 수 없습니다.런타임에 역할 공급자를 설정하는 방법은 무엇입니까?
런타임에 역할 공급자를 어떻게 설정합니까?
런타임에 RoleProvider를 설정할 수 있어야합니다. 나는 그것이 어디서 왔는지도 모릅니다 - 느슨하게 결합 된 의존성 삽입을 사용하고 있습니다 - 그래서 심지어 web.config 파일에 정의 할 수 없습니다.런타임에 역할 공급자를 설정하는 방법은 무엇입니까?
런타임에 역할 공급자를 어떻게 설정합니까?
사용자 정의 RoleProvider를 작성합니다. 이 역할 공급자는 web.config에 등록해야하는 유일한 공급자입니다.
Initialize 메서드에서는 코드에서 원하는 공급자를로드하고 사용자 지정 공급자의 개인 멤버로 저장할 수 있습니다.
역할 공급자의 해당 지점부터는 선택한 공급자의 단순한 프록시입니다. 예 :
public class CustomRoleProvider : RoleProvider
{
//The real role provider;
private RoleProvider _provider;
public CustomRoleProvider()
{ }
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
{
base.Initialize(name, config);
//In here initalise your Role Provider at run time
//This is just demo code... obviously you would do something a little more
//intelligent
SqlRoleProvider provider = new SqlRoleProvider();
provider.Initialize("sql", config);
_provider = provider;
}
public override void AddUsersToRoles(string[] usernames, string[] roleNames)
{
_provider.AddUsersToRoles(usernames, roleNames);
}
public override bool DeleteRole(string roleName, bool throwOnPopulatedRole)
{
return _provider.DeleteRole(roleName, thrownOnPopulatedRole);
}
//other proxy methods would also be here...
}
당신은 여러 공급자를 지원하고 업체의 당신이 사용할 수있는 런타임에 선택이 확장하는 방법을 볼 수 있었다.
질문에 대한 답변이 있습니까?
그래, 그게 ... 내가 실제로하고있는 일은 ... 그런데 이런 유형의 프록시에 열중하지 않았다. 같은 유형의 자아를 파생시키고 구성하는 것은 문제를 일으킬 수 있고 추악합니다. 하지만, 내가 지금까지 생각해 낼 수있는 유일한 것입니다. 그래서 +1. –