Azure B2C 如何检索内置用户声明/属性

我正在尝试使用内置用户属性和声明从 Azure B2C 检索一些非常基本的信息。

我只想回来

  1. 给定的名称

  2. 用户身份

  3. 电子邮件

(对我来说)B2C 如何存储此内容并不完全明显...登录/注销策略(用户属性)将电子邮件地址显示为字符串

https://img1.mukewang.com/650faf54000114b215370637.jpg

但登录/注销策略(应用程序声明)将电子邮件地址显示为字符串集合

https://img.mukewang.com/650faf670001855c15390683.jpg

守着一只汪
浏览 98回答 1
1回答

倚天杖

用户属性是B2C从用户那里收集的信息。因此,B2C 仅收集一封电子邮件,“电子邮件地址”是一个字符串。声明是B2C返回给依赖方应用程序的信息。因为这里可能有多个电子邮件(来自多个资源,例如联合 Idp,所以这是一个集合。如何读取值为数组的声明List<string> emails = new List<string>();  IEnumerable<Claim> emailClaims =  Claims.Where(c => c.Type == ClaimTypes.Email);                if (emailClaims.Any())                {                    // get the roles' actual value                    foreach (Claim claim in emailClaims)                    {                        emails.Add(claim.Value);                    }                                   }
打开App,查看更多内容
随时随地看视频慕课网APP