Home > database >  Get claim email address
Get claim email address

Time:11-02

I want to access my email address via Claim inside Identity

I tried accessing as:

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

But none of these works, it always return null, how can I get it?

The claim is:

{http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress: [email protected]}

CodePudding user response:

C# offers a Claim Types Enum to represent the claim type url. The code would look like this:

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

If you support custom Claim Types in your identity, you could use LINQ.

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