2012-10-03 6 views
2

Windows 인증을 사용하여 MVC4 웹 응용 프로그램을 만들었습니다. 어떤 사용자가 AD에 의존하지 않고 [데이터베이스 테이블이나 앱 자체 내에서 지정하지 않고 [Authorize (Roles = "Admin")]와 같은 것을 사용할 수있는 사용자를 정의 할 수 있습니까?Windows 인증 역할

답변

2

물론입니다. 백엔드에있는 것을 기반으로 역할 구성원을 확인하는 사용자 지정 역할 공급자를 만들어야합니다.

사용자 지정 역할 공급자는 System.Web.Security.RoleProvider에서 파생되므로 적어도 GetRolesForUserIsUserInRole 메서드를 재정의해야합니다.

GetRolesForUser 메서드는 Authorize 특성에서 사용하는 메서드입니다. 사용자가 인증되면 특성은 사용자의 SamAccountName을 사용하여이 메서드를 호출하고 메서드가 사용자가 속한 역할의 이름을 포함하는 string[]을 반환 할 것으로 예상합니다.

자세한 내용은 http://msdn.microsoft.com/en-us/library/8fw7xh74(v=vs.100).aspx을 참조하십시오.