폼 인증을 사용하여 Active Directory에 대해 인증하는 MVC 응용 프로그램이 있습니다. 내 MVC 응용 프로그램의 크기가 가운이므로, 내가하고있는 역할 검사가 점점 더 단편화되고 있음이 분명해졌습니다.Active Directory 역할을 기반으로 한 사용 권한
[AuthorizePermission(Permission.CanDoSomething)]
및 Thead.CurrentPrincipal.HasPermission(Permission.CanDoSomething)
곳 권한이 열거입니다 :의 라인을 따라 뭔가
[Authorize(Roles = "Staff")]
및 Thread.CurrentPrincipal.IsInRole("Staff")
: 내가 좋아하는 일을 대체합니다. 지금은 내가 지금처럼 Web.config의 각 AD 역할이 갖고있는 권한을 정의 할 수 있다고 생각했다 : 나는 다음 IPrincipal 확장 방법을 구현할 수
<role name="Staff">
<permissions>
<add name="CreateEditDeleteSomething" />
<add name="PublishSomething" />
<add name="QueryUsers" />
</permissions>
</role>
- HasPermission(Permission permission)
합니다. 이렇게하면 사용자가 web.config에 정의 된대로 권한이 전달 된 AD 그룹 중 누구에게 알리는 지 알 수 있습니다. 이렇게하면 특정 AD goup가 코드를 변경하거나 기존 테스트를 업데이트하지 않고도 사용 권한을 변경할 수 있습니다. 그런 다음 사용자 지정 권한 부여 특성은 HasPermission 메서드를 호출 할 수 있습니다.
이 방법이 맞습니까? 아니면 응용 프로그램 내에서 역할을 단순화하는 더 나은 방법이 있습니까? 나는 여기와 웹에서 여러 가지 예를 보았지만 지나치게 복잡해 보였다. HasPermission의 web.config 역할 설정에 대한 Permission이 전달되었는지 확인하면됩니다. IPrincipal은 AD 역할을 가지므로 확실하게 허용 된 사용 권한을 결정하는 것이 쉽습니다.
도움을 주셨습니다.