2011-02-12 7 views
18

HttpContext이있는 ASP.NET 페이지, 모듈 또는 처리기 내부에 현재 RoleProvider 인스턴스에 대한 참조를 얻으려면 어떻게해야합니까?현재 RoleProvider 인스턴스를 참조 하시겠습니까?

IPrincipal.IsInRole(..) 메서드가 호출 될 때 권한 부여에 사용되는 공급자입니다. 기본적으로, 또는 구성에서 내 제공자는 앱을 실행할 때 주어진 오류로 SqlRoleProvider 인스턴스 인 것 같습니다.

런타임에 공급자 유형을 검사하여 실제로 어떤 유형이 사용되고 있는지에 대한 피드백을 제공하고자합니다.

답변

29

static Roles class에는 현재 공급자를 참조하는 데 사용할 수있는 Provider 속성이 있습니다. 사용자 지정 RoleProvider를 사용하는 경우

Roles.Provider 

하고, 사용자 정의 기능에 액세스하기 위해 캐스팅 할 수 있습니다.

((MyCustomRoleProvider)Roles.Provider).AllYourRoleAreBelongToUs(); 
+0

고마워요! 이 정보는 필자의 역할 제공자가 실제로 'System.Web.Security.SqlRoleProvider'대신 'WebMatrix.WebData.SimpleRoleProvider'임을 결정하는 데 도움이되었습니다. 아휴! 건배. –

+4

+1 "모든 기반 ..."참조. –

관련 문제