2017-05-09 53 views
0

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

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

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

回答

0

这比我们想象的要困难得多,而且我认为,事情变化的速度有多快,保持文档更新的困难,以及与搜索引擎很容易提供浏览次数最高的信息,在这种情况下,这些信息已经过时并且不再适用,并且不再有效。

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

尽管如此,我真的很感谢Bruce的努力。

去年,我使用OneDrive SDK在UWP应用程序中实施了auth。我在新应用程序中遇到了两个问题:

  1. 去年使用的版本是旧版本(1.15版本2.0.6)...正如绝大多数有关使用我可以在互联网上找到的SDK。一切似乎都是关于不再存在的OneDriveClientExtensions类。但我并不特别想要卡住2015年的版本,永远无法升级。由于最新版本已经6个月大了,无论如何我都有点害怕。
  2. 为了验证目的,最新版本还需要安装Microsoft.OneDriveSDK.Authentication软件包。这是最近5个月前更新的版本,但依赖于版本为3.13的Microsoft.IdentityModel.Clients.ActiveDirectory v2(虽然看起来v2仍在使用中)。这成为一个真正的痛苦之处在于UWP社区工具包服务库需要同一个软件包的v3版本,因此您不能同时在同一个项目中安装Toolkit Services和OneDriveSDK身份验证软件包。幸运的是,由于我无法让UWP服务库做我想做的事,所以我并不需要它。

所以,我从溶液中取出UWP服务包并安装了最新的OneDrive SDK包,在互联网翻遍寻找如何使用那个版本,我终于找到了这样的例子:

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

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

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

0

根据你的描述,我检查了Live SDK,发现最新的版本是v5.6.3,最后在周三,7月8日,2015年。另外,我已经检查这个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并配置服务器端,然后参考官方tutorial关于添加身份验证到您的Windows应用程序。