UWP中的遗留身份验证

时间:2017-05-09 00:51:35

标签: azure authentication azure-mobile-services

我有几年前写过的Windows 8 / RT应用程序,其中我使用Azure移动服务和Live SDK通过用户的Microsoft帐户对用户进行身份验证。

现在我正在尝试从头开始重写UI作为UWP应用程序,我现在正在努力弄清楚如何实现身份验证,现在,当用户在1个版本的数据库中保存数据时应用程序,我可以在其他版本中向他们展示。 似乎MS正在将我们推向Azure AD,但我找不到任何帮助,我找到的所有示例都不支持UWP或Azure不再支持。

我可以请一些方向......在哪里可以找到当前支持的代码示例?

2 个答案:

答案 0 :(得分:0)

根据您的描述,我检查了Live SDK,发现最新版本是v5.6.3,最后一次更新于2015年7月8日星期三。另外,我检查过这个lib无法使用我的UWP应用程序(目标版本:Windows 10.0; Build 10240)。

我假设您可以通过Azure AD v2.0端点使用Microsoft帐户调用Microsoft Graph进行身份验证。有关详情,请参阅Get started with Microsoft Graph in a universal Windows 10 app和此git sample

或者您可以migrate your azure mobile service to azure app service并配置服务器端Microsoft Account authentication,然后请参阅此官方tutorial,了解如何向Windows应用添加身份验证。

答案 1 :(得分:0)

这比以前要困难得多,我认为,这与事情变化的速度以及在与搜索引擎作战时保持文档最新的难度有关。倾向于提供观看次数最多的信息,在这种情况下,这些信息已过时且过时且不再有效。

就布鲁斯的回答而言,我试过了。首先,似乎我的移动应用程序已自动迁移到Azure中的App Services。其次,Microsoft Graph实现将进行身份验证,但会创建断开连接,因为身份验证过程返回的信息与我用于唯一标识用户的Live SDK返回的信息不匹配。因此,使用Graph实现会断开我的用户与他们要求我为他们存储的所有数据的连接。第三,第2段中链接的文章(尽管是6个月前写的)已经过时,使用过时的工具,如“经典”Azure门户,并假设您创建一个新的应用程序,从而允许模板做得很好交配配置和我需要的。

但是,我真的很感激努力,布鲁斯。

去年我使用OneDrive SDK在UWP应用程序中实现了auth。尝试在新应用中执行此操作时遇到了两个问题:

  1. 我去年使用的版本是完整版本(1.15 v 2.0.6)...以及关于如何使用我可以在互联网上找到的SDK的绝大多数教程。一切似乎都与OneDriveClientExtensions类有关......它已不复存在。但我并不特别想要坚持2015年的版本,永远无法升级。由于最新版本已经有6个月了,我还是有点害怕。
  2. 出于授权目的,最新版本还要求您安装Microsoft.OneDriveSDK.Authentication软件包。这是5个月前的最后一次更新,但依赖于版本3.13的Microsoft.IdentityModel.Clients.ActiveDirectory的v2(虽然看起来v2仍在使用)。 UWP社区工具包服务库需要同一个包的v3,因此您不能在同一个项目中安装Toolkit服务和OneDriveSDK身份验证包。幸运的是,由于我无法让UWP服务库按照我的意愿去做,我真的不需要它。
  3. 因此,我从我的解决方案中删除了UWP服务包,并安装了最新的OneDrive SDK软件包并在互联网上搜索,寻找如何使用该版本的示例,我终于找到了这个:

    var scopes = new string[] { "wl.signin" };
    var client = new OnlineIdAuthenticationProvider(scopes);
    await client.AuthenticateUserAsync();
    

    然后,您可以访问客户端的CurrentAccountSession属性以获取UserId。

    现在,我确信这是一个临时解决方案,因为最终,OneDrive SDK将会过时,我需要使用一些依赖于ActiveDirectory包的v3的库,但在此之前,这是可行的。 / p>