我正在测试 Azure 应用服务来创建 Web/移动应用。我使用 xamarin.forms 进行移动,使用应用服务移动服务(C# 服务器)进行移动访问,并使用 2 个应用服务 Web 应用。
服务器应用和两个网络应用均已配置为使用 Google Auth,并按照此处的说明使用相同的 Google 凭据:
我正在尝试获取已登录 Google 用户的用户 ID,在网络应用中,我获得了格式为 112567911111837839502 的 ID(与网络应用 1 和网络应用 2 均匹配),但是当我使用通过移动设备使用同一个 Google 帐户,我得到一个格式为 sid:dc7a23bc80cb2752822351cf5a111111 的 ID(在移动客户端和移动服务器项目上)
我在网络应用程序和移动服务器项目中用于获取 ID 的代码是相同的:
var claimsPrincipal = this.User as ClaimsPrincipal;
string sid = claimsPrincipal.FindFirst(ClaimTypes.NameIdentifier).Value;
任何人都可以建议一种从移动和网络应用程序获取匹配 ID 的方法吗?我原以为这将是 Azure 应用服务的主要思想之一
谢谢
标记
最佳答案
您可以获得/.auth/me 端点 ( https://yoursite.azurewebsites.net/.auth/me ) - 这将为您提供一个 JSON 对象,您可以解析该对象以查找 google 返回的声明。您的用户 ID 将在那里。
关于Azure 应用服务 - Google 帐户 ID 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38901936/