我已经按照本文构建了具有内部部署ADFS联合的演示应用程序。
我能够使用简单的代码
获取用户所需的信息Dim UserEmail = System.Security.Claims.ClaimsPrincipal.Current.FindFirst(System.IdentityModel.Claims.ClaimTypes.Email).Value
但是如何获取用户名所在的用户组并检查用户帐户是否是Active Directory中Windows组的成员?
我尝试使用System.Security.Claims.ClaimsPrincipal.Current.IsInRole
来检查用户是否在群组中,但是它无法正常工作
答案 0 :(得分:7)
在ADFS声明规则中,您需要配置规则"将LDAP属性作为声明发送" /"令牌组 - 不合格的名称"并映射到"角色"作为"传出声明类型"。
然后,ADFS以角色格式提供用户为memberOf的所有安全组,WIF将它们映射到IsInRole构造。答案 1 :(得分:-1)
这就足够了。
ClaimsPrincipal.Current.AddIdentity(new ClaimsIdentity());
ViewBag.Name = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Email).Value;
:)