获取索赔电子邮件地址

Get claim email address

我想通过 ClaimIdentity

中访问我的电子邮件地址

我尝试访问为:

var email = User.Identity.GetClaimsByType("emailaddress").ToString();
var email = User.Identity.GetClaimsByType("email").ToString();
var email = User.Identity.GetClaimsByType("Email").ToString();

但是none这些作品,总是returnnull,我怎样才能得到它?

索赔是:

{http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress: MyemailAdrress@mail.com}

C# 提供了一个 Claim Types Enum 来表示声明类型 url。代码如下所示:

  var email = User.Identity.GetClaimsByType(ClaimTypes.Email).Select(x => x.Value).FirstOrDefault().ToString();

如果您在身份中支持自定义声明类型,则可以使用 LINQ。

var claimValue = User.Identity.Claims.FirstOrDefault(claim => claim.Type.Contains(<my custom claim type>));