如何从内部部署ADFS声明中获取用户组

时间:2014-07-07 12:46:22

标签: asp.net vb.net wif adfs

我已经按照本文构建了具有内部部署ADFS联合的演示应用程序。

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

我能够使用简单的代码

获取用户所需的信息
Dim UserEmail = System.Security.Claims.ClaimsPrincipal.Current.FindFirst(System.IdentityModel.Claims.ClaimTypes.Email).Value

但是如何获取用户名所在的用户组并检查用户帐户是否是Active Directory中Windows组的成员?

我尝试使用System.Security.Claims.ClaimsPrincipal.Current.IsInRole来检查用户是否在群组中,但是它无法正常工作

2 个答案:

答案 0 :(得分:7)

在ADFS声明规则中,您需要配置规则"将LDAP属性作为声明发送" /"令牌组 - 不合格的名称"并映射到"角色"作为"传出声明类型"。

然后,ADFS以角色格式提供用户为memberOf的所有安全组,WIF将它们映射到IsInRole构造。

答案 1 :(得分:-1)

这就足够了。

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

:)