J'ai modifié startup.Auth.cs afin que je puisse ajouter des étendues. Voici ce que j'ai:Comment obtenir l'adresse e-mail de l'utilisateur lors de l'utilisation de l'authentification de compte Microsoft dans un projet MVC?
MicrosoftAccountAuthenticationOptions mo = new MicrosoftAccountAuthenticationOptions()
{
ClientId = "My Client ID",
ClientSecret = "My Client Secret",
};
app.UseMicrosoftAccountAuthentication(mo);
Cela me permet d'authentifier l'utilisateur.
J'ai essayé d'ajouter les champs d'application wl.signin, wl.emails et wl.contacts_emails. Cependant, ils provoquent l'erreur suivante sur la page de connexion Microsoft: AADSTS70011: La valeur fournie pour le paramètre d'entrée 'scope' n'est pas valide. La portée wl.signin, wl.emails, wl.contacts_emails n'est pas valide. La combinaison de portée de openid et email semble fonctionner. Cependant, la portée openid est exagérée pour ce que j'essaie de faire. Autrement dit, je pense que c'est trop demander à l'utilisateur. La portée email tout par lui-même ne fonctionne pas.
Cela est particulièrement étrange car le modèle que Visual Studio configure suppose que le fournisseur d'authentification externe fournira une adresse électronique.
Comment obtenir uniquement l'adresse e-mail de l'utilisateur?
Pour le contexte, j'utilise les documents suivants: https://developer.microsoft.com/en-us/graph/docs/concepts/permissions_reference#openid-permissions qui donne l'impression que je veux email et profil inclus dans le champ d'application. Cependant, il continue à indiquer qu'ils sont inclus par défaut. J'essaie d'implémenter l'authentification externe dans mon projet MVC en utilisant le document: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/microsoft-logins.
Il s'agit d'une application Web ASP.Net (.Net Framework). Je vais essayer le tout avec une application Web ASP.Net Core (.Net Core). l'interface est légèrement différente, c'est-à-dire qu'elle utilise MicrosoftAccountOptions au lieu de MicrosoftAccountAuthenticationOptions. – JSWilson