2017-09-10 4 views
0

Je construis un service Azure App Service qui a des clients Windows Desktop (pas UWP) et iOS. Je souhaite utiliser l'authentification de compte Microsoft pour authentifier les utilisateurs. En raison d'une question précédente here Je peux maintenant authentifier les utilisateurs en utilisant le OneDrive SDK, mais je suis tombé à l'obstacle suivant. Le SDK One Drive ne semble pas permettre d'accéder aux détails de l'utilisateur, tels que son prénom et son adresse e-mail. S'il vous plaît quelqu'un peut-il me diriger vers un exemple ou des instructions pour authentifier un utilisateur d'une application de bureau old school pour lui permettre d'accéder à un Azure App Service en utilisant son compte Microsoft (PAS Azure AD) qui fournira également le client avec accès à son adresse e-mail et qui n'utilise pas de technologie dépréciée.Comment obtenir des informations sur l'utilisateur lors de l'authentification avec OneDrive SDK

Répondre

0

Après authentification via facile Auth, nous pouvons acquérir les informations utilisateur en appelant l'API comme le code ci-dessous du point d'extrémité me (https://{yourSiteName}/.auth/me):

var result =await client.InvokeApiAsync("/.auth/me"); 

Et pour acquérir l'e-mail, nous avons besoin wl.emails portée lorsque nous nous authentifions avec le OneDrive SDK. Et après cela, nous pouvons obtenir le prénom et les e-mails du point de terminaison me comme:

string email=(string)result[0].SelectToken("$.user_claims[?(@.typ == 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress')]")["val"] 

string givenName=(string)result[0].SelectToken("$.user_claims[?(@.typ == 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname')]")["val"] 
+0

Merci beaucoup. Où aurais-je trouvé cette information documentée? – PhilDotC

+0

Vous pouvez vous reporter à [document] (Authentification et autorisation dans Azure App Service) sur l'authentification simplifiée. Et aussi cgillum a écrit une série de blogs d'aide à ce sujet. (Voir [ici] (https://cgillum.tech/category/easy-auth/)) –