Azure MobileServiceUser

时间:2016-03-24 17:46:38

标签: azure-web-sites azure-mobile-services

我正在使用Azure移动应用服务为Xamarin本机客户端和Web客户端创建后端。

我的用户需要一致的用户ID才能在所​​有平台上运行,因为我希望他们使用多个平台(至少是他们的手机和浏览器)。据我所知,至少有四个值(不包括我自己的)用于某种方式"识别"用户。

在客户端,使用Microsoft.WindowsAzure.MobileServices.MobileServiceUser,当我查看user.Id时,我得到sid:18a8227509fb6******bfc976b646e5。我不知道它来自何处。

登录后点击./auth/me端点时,我发现user_id声明显然是我的登录名。所以这必须来自在HTTP标头中旅行的access_token,对吧?

同样来自./auth/me端点的名称标识符'声明如下:1015672*****60338。这个属于国内流离失所者,因为我可以在国内流离失所者的帐户上看到它。还必须来自access_token,对吧?

在服务器端,我使用System.Security.Claims.ClaimsPrincipalClaimsPrincipal.FindFirst(ClaimTypes.NameIdentifier).Value。当我通过直接调用端点在浏览器中显示它时,我获得与上面相同的值,但如果我从本机应用程序调用完全相同的端点,则会产生如下所示的值:{{1 }}。不知道它来自哪里。

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

很明显,我们正在寻找来自不同人的不同令牌。我应该使用哪个值适用于所有平台?

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

我非常困惑。

非常感谢任何帮助。

TIA

0 个答案:

没有答案