我正在构建一个Azure应用服务,它同时拥有Windows (不是UWP)和iOS客户端。我想使用Microsoft帐户身份验证来验证用户。
由于前面的一个问题,here,我现在可以使用OneDrive SDK对用户进行身份验证,但是遇到了下一个障碍。One Drive SDK似乎没有提供对用户详细信息的访问,例如他们的给定名称和电子邮件地址。
请有人向我指出一个示例或说明的方向,用于验证来自旧学校桌面应用程序的用户,以允许他们使用他们的Microsoft帐户(而不是Azure AD)访问Azure应用程序服务,该帐户还将为客户提供访问他们的电子邮件地址的权限,并且不使用折旧后的技术。
发布于 2017-09-10 22:13:57
在通过Easy Auth进行身份验证之后,我们可以通过调用类似于下面的代码从me
端点(https://{yourSiteName}/.auth/me
)获取用户信息:
var result =await client.InvokeApiAsync("/.auth/me");
为了获取电子邮件,我们在使用wl.emails
SDK进行身份验证时需要OneDrive范围。在此之后,我们可以从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"]
https://stackoverflow.com/questions/46143811
复制相似问题