Comment obtenir les informations de l’utilisateur sur le contrôleur WebAPI après authentification avec IdentityServer?

Je ne parviens pas à obtenir les informations de l’utilisateur sur le contrôleur WebAPI une fois que mon application client s’est authentifiée avec IdentityServer3. Voici les étapes:

  1. “Connexion avec profil et jeton d’access” depuis l’application JavaScript Implicit Client
  2. Je vois les données de l’utilisateur sur le panneau “ID Token Contents” entrez la description de l'image ici
  3. Je fais appel à un service à mon service WebAPI. Je vois beaucoup de revendications dans ClaimsPrincipal mais je ne peux pas obtenir de valeurs telles que la messagerie électronique, les rôles affichés côté client. Vous trouverez ci-dessous le code et les réponses.

entrez la description de l'image ici Quelqu’un pourrait-il me fournir des informations sur la manière d’obtenir les données de l’utilisateur sur WebAPI?

si vous utilisez owin, vous pouvez essayer ce code.

var owinUser = TryGetOwinUser(); var claim= TryGetClaim(owinUser, "email"); ssortingng email = claim.Value; private ClaimsPrincipal TryGetOwinUser() { if (HttpContext.Current == null) return null; var context = HttpContext.Current.GetOwinContext(); if (context == null) return null; if (context.Authentication == null || context.Authentication.User == null) return null; return context.Authentication.User; } private Claim TryGetClaim(ClaimsPrincipal owinUser, ssortingng key) { if (owinUser == null) return null; if (owinUser.Claims == null) return null; return owinUser.Claims.FirstOrDefault(o => o.Type.Equals(key)); }