我正在构建一个同时具有Windows桌面(非UWP)和iOS客户端的Azure应用服务。我想使用Microsoft帐户身份验证来验证用户身份。
由于上一个问题here,我现在可以使用OneDrive SDK对用户进行身份验证,但是已经陷入了下一个障碍。 One Drive SDK似乎无法访问用户详细信息,例如他们的姓名和电子邮件地址。
请有人指出我从旧学校桌面应用程序验证用户的示例或说明的方向,以允许他们使用他们的Microsoft帐户(非Azure AD)访问Azure应用服务,该帐户也将提供客户端可以访问他们的电子邮件地址,而不使用折旧技术。
答案 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"]