2012-01-27 2 views
2

Windows 인증으로 ASP.NET MVC3 인트라넷 응용 프로그램을 만들고 있습니다. 도메인 사용자 만이 응용 프로그램을 사용하기를 원합니다. 도메인 사용자가 인증되면 (Active Directory), 사용자 (AD 사용자 이름 포함), 에 대한 SQL Server의 역할 & UserRoles 테이블을 만들려고합니다.ASP.NET MVC3에서 Windows 인증과 함께 사용자 지정 역할 기반 권한 부여를 사용하는 방법은 무엇입니까?

사용자가 일부 권한 집합 (컨트롤러/작업에 액세스하기위한 권한)이있는 역할의 일부인 경우 해당 역할의 사용자 만 해당 권한을 실행하거나 볼 수 있도록해야합니다.

예 : 작업/위치/생성이있는 경우이를 수행 할 수있는 역할 만 수행 할 수 있습니다.

누군가 내게 약간의 포인터를 줄 수 있습니까? 사용자 지정 작업 필터를 만들고 필터를 적용 할 작업 메서드에 필터 특성을 사용해야합니까?

답변

0

ASP.NET MVC보기에 대한 액세스를 제한하려면보기를 렌더링하는 동작 방법에 대한 액세스를 제한합니다. 이를 위해 MVC 프레임 워크는 AuthorizeAttribute 클래스를 제공합니다.

예 :

[Authorize(Roles = "Admin, Super User")] 
public ActionResult AdministratorsOnly() 
{ 
return View(); 
} 

은 자세한 내용은 here를 참조하십시오.

[Authorize] 특성을 사용하려면 일종의 멤버 자격 공급자를 사용해야합니다.

+0

고맙습니다 @autonomatt. ASP.NET의 멤버쉽, 역할 및 프로필보다는 SQL Server의 사용자/역할에 대해 자체 테이블 구조를 사용하는 것을 선호하므로 사용자 지정 멤버 자격 공급자를 구현해야합니까? [this] (http://msdn.microsoft.com/en-us/library/f1kyba5e%28v=vs.100%29.aspx) 문서를 계속 진행하는 좋은 방법이 있습니까? –

+1

그게 내가 한거야. 연구 할 때 나는 똑같은 말을하는 많은 게시물을 발견했다. MS의 테이블 구조 사용은 권장되지 않습니다. 주로 특정 데이터를 저장하는 방식 때문에 쿼리하기가 매우 어렵습니다. 나는 내 데이터 액세스 레이어에서 NHibernate를 사용하고 사용자 정의 NHibernate Membership Provider를 구축했다. [이 기사] (http://www.codeproject.com/Articles/55174/Custom-Fluent-Nhibernate-Membership-and-Role-Provi)는 나를 도왔다. 그리고 [이 기사 Mauricio Scheffer] (http://bugsquash.blogspot.com/2010/11/windsor-managed-membershipproviders.html)는 IoC를 사용하려는 경우 다소 관련이 있습니다. – autonomatt

+0

감사합니다 @autonomatt –

관련 문제