UWP 中的旧版身份验证延续
Legacy auth continuation in UWP
我有一个几年前编写的 Windows 8/RT 应用程序,我在其中使用 Azure 移动服务和 Live SDK 通过用户的 Microsoft 帐户对用户进行身份验证。
现在我正在从头开始将 UI 重写为一个 UWP 应用程序,我正在认真地努力弄清楚如何实现身份验证,现在,当用户在 1 版本中保存数据时的应用程序,我可以在其他版本中向他们展示。
似乎 MS 正在将我们推向 Azure AD,但我找不到任何帮助,我能找到的所有示例要么在 UWP 上不受支持,要么不再受 Azure 支持。
我能得到一些指示吗....在哪里可以找到当前支持的代码示例?
根据你的描述,我检查了Live SDK,发现最新版本是v5.6.3,最后更新时间是2015年7月8日,星期三。另外,我检查了这个库不能在我的 UWP 应用程序中工作(目标版本:Windows 10.0;Build 10240)。
我假设您可以使用 Microsoft 帐户通过 Azure AD v2.0 端点调用 Microsoft Graph 进行身份验证。详情请参考Get started with Microsoft Graph in a universal Windows 10 app and this git sample.
或者您可以migrate your azure mobile service to azure app service and configure the server-side Microsoft Account authentication, then refer to this official tutorial关于向您的 Windows 应用程序添加身份验证。
这比本来应该的要困难得多,我认为,这与事物变化的速度以及在与搜索引擎作战时保持文档最新的难度有关容易提供查看次数最多的信息,在这种情况下,这些信息已经过时和过时,不再有效。
至于布鲁斯的回答,我试过了。首先,我的移动应用程序似乎已自动迁移到 Azure 中的应用程序服务。其次,Microsoft Graph 实现将进行身份验证,但会断开连接,因为身份验证过程返回的信息与我用于唯一标识用户的 Live SDK 返回的信息不匹配。因此,使用 Graph 实现会使我的用户与他们要求我为他们存储的所有数据断开连接。第三,第 2 段中链接的文章(尽管是 6 个月前写的)已经过时,请使用过时的工具,例如 "Classic" Azure 门户并假设您创建了一个新应用程序,从而允许模板执行我需要的大量配置。
不过,布鲁斯,我非常感谢您的努力。
去年我使用 OneDrive SDK 在 UWP 应用程序中实现了身份验证。我在尝试在新应用程序中执行此操作时遇到了 2 个问题:
- 我去年使用的版本是旧的完整版本(1.15 v 2.0.6)...我在互联网上可以找到的关于如何使用 SDK 的绝大多数教程也是如此。一切似乎都与 OneDriveClientExtensions class...有关,它不再存在。但我并不是特别想一直使用 2015 年的版本而永远无法升级。最新版本已经6个月了,反正我有点害怕
- 为了验证目的,最新版本要求您还安装 Microsoft.OneDriveSDK.Authentication 包。这是 5 个月前的最后更新,但依赖于版本 3.13 的 Microsoft.IdentityModel.Clients.ActiveDirectory 的 v2(尽管看起来 v2 仍在开发中)。这成为一个真正痛苦的地方是 UWP 社区工具包服务库需要同一包的 v3,因此您不能在同一项目中同时安装工具包服务和 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 的库,但在那之前,这是可行的.
我有一个几年前编写的 Windows 8/RT 应用程序,我在其中使用 Azure 移动服务和 Live SDK 通过用户的 Microsoft 帐户对用户进行身份验证。
现在我正在从头开始将 UI 重写为一个 UWP 应用程序,我正在认真地努力弄清楚如何实现身份验证,现在,当用户在 1 版本中保存数据时的应用程序,我可以在其他版本中向他们展示。 似乎 MS 正在将我们推向 Azure AD,但我找不到任何帮助,我能找到的所有示例要么在 UWP 上不受支持,要么不再受 Azure 支持。
我能得到一些指示吗....在哪里可以找到当前支持的代码示例?
根据你的描述,我检查了Live SDK,发现最新版本是v5.6.3,最后更新时间是2015年7月8日,星期三。另外,我检查了这个库不能在我的 UWP 应用程序中工作(目标版本:Windows 10.0;Build 10240)。
我假设您可以使用 Microsoft 帐户通过 Azure AD v2.0 端点调用 Microsoft Graph 进行身份验证。详情请参考Get started with Microsoft Graph in a universal Windows 10 app and this git sample.
或者您可以migrate your azure mobile service to azure app service and configure the server-side Microsoft Account authentication, then refer to this official tutorial关于向您的 Windows 应用程序添加身份验证。
这比本来应该的要困难得多,我认为,这与事物变化的速度以及在与搜索引擎作战时保持文档最新的难度有关容易提供查看次数最多的信息,在这种情况下,这些信息已经过时和过时,不再有效。
至于布鲁斯的回答,我试过了。首先,我的移动应用程序似乎已自动迁移到 Azure 中的应用程序服务。其次,Microsoft Graph 实现将进行身份验证,但会断开连接,因为身份验证过程返回的信息与我用于唯一标识用户的 Live SDK 返回的信息不匹配。因此,使用 Graph 实现会使我的用户与他们要求我为他们存储的所有数据断开连接。第三,第 2 段中链接的文章(尽管是 6 个月前写的)已经过时,请使用过时的工具,例如 "Classic" Azure 门户并假设您创建了一个新应用程序,从而允许模板执行我需要的大量配置。
不过,布鲁斯,我非常感谢您的努力。
去年我使用 OneDrive SDK 在 UWP 应用程序中实现了身份验证。我在尝试在新应用程序中执行此操作时遇到了 2 个问题:
- 我去年使用的版本是旧的完整版本(1.15 v 2.0.6)...我在互联网上可以找到的关于如何使用 SDK 的绝大多数教程也是如此。一切似乎都与 OneDriveClientExtensions class...有关,它不再存在。但我并不是特别想一直使用 2015 年的版本而永远无法升级。最新版本已经6个月了,反正我有点害怕
- 为了验证目的,最新版本要求您还安装 Microsoft.OneDriveSDK.Authentication 包。这是 5 个月前的最后更新,但依赖于版本 3.13 的 Microsoft.IdentityModel.Clients.ActiveDirectory 的 v2(尽管看起来 v2 仍在开发中)。这成为一个真正痛苦的地方是 UWP 社区工具包服务库需要同一包的 v3,因此您不能在同一项目中同时安装工具包服务和 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 的库,但在那之前,这是可行的.