如何在使用OneDrive SDK进行身份验证时获取用户信息

时间:2017-09-10 17:53:25

标签: azure-mobile-services onedrive msal

我正在构建一个同时具有Windows桌面(非UWP)和iOS客户端的Azure应用服务。我想使用Microsoft帐户身份验证来验证用户身份。

由于上一个问题here,我现在可以使用OneDrive SDK对用户进行身份验证,但是已经陷入了下一个障碍。 One Drive SDK似乎无法访问用户详细信息,例如他们的姓名和电子邮件地址。

请有人指出我从旧学校桌面应用程序验证用户的示例或说明的方向,以允许他们使用他们的Microsoft帐户(非Azure AD)访问Azure应用服务,该帐户也将提供客户端可以访问他们的电子邮件地址,而不使用折旧技术。

1 个答案:

答案 0 :(得分:0)

通过 Easy Auth 进行身份验证后,我们可以通过调用以下代码的API从me端点(https://{yourSiteName}/.auth/me)获取用户信息:

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

要获取电子邮件,我们在使用OneDrive SDK进行身份验证时需要wl.emails范围。然后,我们可以从me端点获取给定名称和电子邮件,如:

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"]