2014-01-17 8 views
0

ASP.Net ID를 ADFS 2.0과 함께 사용하고 있습니다 (제 생각 엔).MVC5 ID로 사용자 지정 역할 위로 연결

사용자가 별도의 서버에 로그인하고 나에게 돌아와서 ClaimsPrincipal을 확인한 다음 userID 클레임을 꺼낸 다음 해당 ID를 사용하여 사용자를 검색합니다.

그래서 저는 ADFS/클레임 기반 인증을 사용하여 사용자 개체를 가져옵니다. 그 후에 사용자 그룹과 역할 같은 것이 있지만 사용자 지정 개체이며 ADFS를 사용하지 않고 응용 프로그램에서 관리합니다.

알아 두어야 할 사항 : 사용자 지정 데이터베이스 역할을 즉시 사용 가능한 역할과 함께 사용하는 것이 얼마나 어렵습니까? 특히 나는 컨트롤러에서 Role ("RoleName") 특성을 사용할 수 있고 사용자 액세스를 제어하기 위해 뷰의 User.IsInRole ("RoleName")에서 일부 UI 요소를 래핑 할 수 있기를 원합니다.

전선을 연결하려면 어떻게해야합니까?

답변

3

저는 어떤 역할 속성을 모르겠습니다. Authorize ("RoleName") 속성을 의미합니까?

결과적으로 IPrincipal.IsInRoleAuthorizeAttribute과 호환되는 역할 클레임을 추가하는 것은 매우 쉽습니다. 그냥 컨트롤러의 유형 그리고 ClaimTypes.Role

//when creating a new identity 
var identity = new ClaimsIdentity(new Claim[] { 
    new Claim(ClaimTypes.Role, "MyRole1"), 
    new Claim(ClaimTypes.Role, "MyRole2") 
}); 

//add a claim to an identity 
identity.AddClaim(new Claim(ClaimTypes.Role, "MyRole3")); 

와 주장을 추가, 그래 AuthorizeAttribute

Authorize("MyRole1") 
+0

을 추가, 내가 권한 부여 ("RoleName")을 의미했다. – SuperNES

관련 문제