J'ai couru le Pour le compte de l'échantillon dans 4,5 .NET:Comment faire au nom d'auth dans .NET Core (BootstrapContext manquant)?
https://github.com/Azure-Samples/active-directory-dotnet-webapi-onbehalfof
Mais je dois faire la même chose dans le noyau .NET. Lorsque vous essayez de port de service exemple à .NET tout coeur pour cette compile, sauf la ligne:
var bootstrapContext = ClaimsPrincipal.Current.Identities.First().BootstrapContext as System.IdentityModel.Tokens.BootstrapContext;
Il ne compilera pas parce que System.IdentityModel n'est pas disponible dans .NET de base.
J'ai découvert que si j'acquiers l'accès utilisateur jeton et le nom d'utilisateur en utilisant ce code à la place qu'il fonctionne pour les utilisateurs dans le même locataire que le service:
System.Security.Claims.ClaimsIdentity identity =
User.Identity as System.Security.Claims.ClaimsIdentity;
string userAccessToken = identity.BootstrapContext as string;
string userName = (User.FindFirst(ClaimTypes.Upn))?.Value;
Mais pour les utilisateurs dans un différent locataire (authentification multi-locataire), userAccessToken et userName sont définis sur null. Que dois-je faire différemment pour que cela fonctionne pour les utilisateurs provenant d'un autre locataire?
Bonne alternative. Merci. –