2014-07-07 7 views
1

이 문서를 읽고 온 - 프레미스 ADFS 페더레이션과 함께 데모 응용 프로그램을 작성했습니다. 나는 간단한 코드온 프레미스 ADFS 클레임에서 사용자 그룹을 얻는 방법

Dim UserEmail = System.Security.Claims.ClaimsPrincipal.Current.FindFirst(System.IdentityModel.Claims.ClaimTypes.Email).Value 

를 사용하여 사용자에 대한 필요한 정보를 얻을 그러나 수 있어요

http://www.cloudidentity.com/blog/2014/02/12/use-the-on-premises-organizational-authentication-option-adfs-with-asp-net-in-visual-studio-2013/

사용자 계정이 Windows 그룹의 구성원 인 경우 나 사용자 이름이 속한 위치를 사용자 그룹을 얻을 확인 할 수있는 방법 Active Directory?

나는 사용자가 그룹에 있는지 확인하는 System.Security.Claims.ClaimsPrincipal.Current.IsInRole를 사용하려고했지만, ADFS 규칙을 주장에서이

답변

6

작동하지 않습니다, 당신은 규칙을 구성/"토큰 그룹"LDAP 주장으로 속성 보내기 "필요 - Unqualified Names "로 지정하고"Role "에"Outgoing Claim Type "으로 매핑합니다.

ADFS는 사용자가 역할 형식의 memberOf 인 모든 보안 그룹을 제공하고 WIF는이 그룹을 IsInRole 구조로 매핑합니다.

+0

아직도 사용자에 대한 역할을 얻을 수 없습니다. web.config에 rolemanager를 추가해야합니까? – CodAri

+0

얻은 모든 클레임을 열거하면 목록에 롤이 있습니까? – nzpcmad

+0

감사합니다. 이것은'System.Security.Claims.ClaimsPrincipal.Current.IsInRole ("MyGroupName")'을 사용하는 것을 포함하여 저에게 잘 작동합니다. OP : 앱의 도메인에서 쿠키를 지우십시오 (ADFS에서 신원 정보를 강제로 새로 고침). 모든 그룹이 속성'((System.Security.Claims.ClaimsIdentity) System.Security.Claims.ClaimsPrincipal.Current.Identity) .Claims'에서 볼 수 있습니다. 예 : http://i.imgur.com/jRoc1gA. PNG – gregmac

-1

이것으로 충분합니다.

ClaimsPrincipal.Current.AddIdentity(new ClaimsIdentity()); 
ViewBag.Name = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Email).Value; 

: