这比我们想象的要困难得多,而且我认为,事情变化的速度有多快,保持文档更新的困难,以及与搜索引擎很容易提供浏览次数最高的信息,在这种情况下,这些信息已经过时并且不再适用,并且不再有效。
就布鲁斯的回答,我试了一下。首先,我的移动应用似乎已自动迁移到Azure中的应用服务。其次,Microsoft Graph实现将进行身份验证,但创建断开连接,因为身份验证过程返回的信息与我用于唯一标识用户的Live SDK返回的信息不匹配。因此,使用Graph实现将我的用户从他们要求我为他们存储的所有数据中断开。第三,第二段(尽管是在6个月前编写的)中链接的文章已过时,使用诸如“经典”Azure门户等过时的工具,并假设您创建了一个新应用程序,从而允许模板做得很好交易的配置和我需要的。
尽管如此,我真的很感谢Bruce的努力。
去年,我使用OneDrive SDK在UWP应用程序中实施了auth。我在新应用程序中遇到了两个问题:
- 去年使用的版本是旧版本(1.15版本2.0.6)...正如绝大多数有关使用我可以在互联网上找到的SDK。一切似乎都是关于不再存在的OneDriveClientExtensions类。但我并不特别想要卡住2015年的版本,永远无法升级。由于最新版本已经6个月大了,无论如何我都有点害怕。
- 为了验证目的,最新版本还需要安装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的库,但在此之前,这会起作用。