用户属性是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); } }