Azure web app service Azure MobileServiceUser中User.Id的来源是什么

Azure web app service Azure MobileServiceUser中User.Id的来源是什么,azure-web-app-service,azure-mobile-services,Azure Web App Service,Azure Mobile Services,我正在使用Azure移动应用程序服务为Xamarin本地客户端和web客户端创建后端 我需要一个一致的用户id,我的用户将在所有平台上工作,因为我希望他们使用多个平台(至少他们的手机和浏览器)。据我所知,至少有四个值(不包括我自己的值)用于以某种方式“识别”用户 在客户端,使用Microsoft.WindowsAzure.MobileServices.MobileServiceUser,当我查看user.Id时,会得到sid:18a8227509fb6*******bfc976b646e5。我不

我正在使用Azure移动应用程序服务为Xamarin本地客户端和web客户端创建后端

我需要一个一致的用户id,我的用户将在所有平台上工作,因为我希望他们使用多个平台(至少他们的手机和浏览器)。据我所知,至少有四个值(不包括我自己的值)用于以某种方式“识别”用户

在客户端,使用Microsoft.WindowsAzure.MobileServices.MobileServiceUser,当我查看user.Id时,会得到sid:18a8227509fb6*******bfc976b646e5。我不知道这是从哪里来的

登录后,当我点击
/auth/me
端点时,我发现一个
用户id
声明,它显然是我的登录名。这一定是来自HTTP头中的访问令牌,对吗

另外,在
/auth/me
端点中还有一个类似于以下内容的“nameidentifier”声明:
1015672****60338
。这个属于IDP,我在IDP的账户上可以看到。也必须来自访问令牌,对吗

在服务器端,我使用的是
System.Security.Claims.ClaimsPrincipal
ClaimsPrincipal.FindFirst(ClaimTypes.NameIdentifier).Value
。当我通过直接调用端点在浏览器中显示它时,我得到的值与上面相同,但如果我从本机应用程序调用完全相同的端点,则会得到如下值:
sid:ea7cc6e1cf19****39085297c50b8b4
。不知道那是从哪里来的

这些值在多次登录时看起来是一致的,这是一种安慰。:)

很明显,我们看到的是来自不同人群的不同代币。我应该使用哪个值来跨所有平台工作

我倾向于认为我需要一个自定义端点,它可以返回我自己的信息以及它链接到的提供者。我不喜欢直接从我的客户那里打IDP电话,而且存储在那里的信息越少越好

我非常困惑

任何帮助都将不胜感激


TIA

好的,我做了更多的研究。使用完全相同的身份提供者(Google)提供的相同身份,我会得到完全不同的nameidentifier结果,这取决于我是使用浏览器还是使用本机客户端(在本例中为Windows App 8.1)。还有更多研究。有一个悬而未决的问题。还有一个关于用户id的很好的解释。请注意,有些代码已经被弃用,但替代品可以工作。适用于本机客户端,但不适用于浏览器客户端。