OneDrive SDK认证时如何获取用户信息
How to get user information when authenticating with OneDrive SDK
我正在构建一个包含 Windows 桌面(非 UWP)和 iOS 客户端的 Azure 应用服务。我想使用 Microsoft 帐户身份验证来验证用户。
作为上一个问题的结果 我现在可以使用 OneDrive SDK 对用户进行身份验证,但遇到了下一个障碍。 One Drive SDK 似乎不提供对用户详细信息(例如他们的名字和电子邮件地址)的访问权限。
请有人给我指出一个示例或说明,用于从老式桌面应用程序对用户进行身份验证,以允许他们使用他们的 Microsoft 帐户(不是 Azure AD)访问 Azure 应用服务,这也将提供可以访问其电子邮件地址并且不使用折旧技术的客户。
通过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"]
我正在构建一个包含 Windows 桌面(非 UWP)和 iOS 客户端的 Azure 应用服务。我想使用 Microsoft 帐户身份验证来验证用户。
作为上一个问题的结果
请有人给我指出一个示例或说明,用于从老式桌面应用程序对用户进行身份验证,以允许他们使用他们的 Microsoft 帐户(不是 Azure AD)访问 Azure 应用服务,这也将提供可以访问其电子邮件地址并且不使用折旧技术的客户。
通过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"]