gpt4 book ai didi

c# - 使用 Azure 移动应用程序作为后端向 UWP 应用程序添加身份验证

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:19 25 4
gpt4 key购买 nike

我正在开发 UWP 应用程序,该应用程序要求用户使用 MicrosoftGoogle 等社交身份提供商登录。我已按照快速入门指南 here 进行操作其中描述了如何添加身份验证。

UWP 快速入门应用中,安装的 Microsoft.Azure.Mobile.Client 版本为 3.1.0,如果我将其升级到最新版本,即 4.0.0LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount) 行上会抛出错误,说明 LoginAsync 没有采用以下方法的重载方法1 论证。为了解决这个问题,我在方法中添加了一个 SingleSignOn 参数,它是一个 boolean

var user = await App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.MicrosoftAccount, true);

当我运行应用程序时,Microsoft 登录弹出窗口成功显示,但是当用户登录时,弹出窗口不会消失,并且控制权永远不会返回到应用程序。以下是截图: enter image description here

如果我手动关闭弹出窗口,则会引发异常:用户取消身份验证

这是一个 Microsoft.Azure.Mobile.Client Nuget 包版本问题还是我在这里遗漏了一些东西。

任何帮助将不胜感激。

最佳答案

好的,我现在就回答你的问题,因为我几秒钟前就解决了这个问题。

所以你正在使用UWP,我正在使用模板10,并且我已经能够使其在两者上工作,根据我发现的情况,首先更新到v4.0.0或v4.0.1是因为谷歌身份验证停止允许用于身份验证的 Web View 以及 Azure-Mobile-Net-Client 团队担心的是,所有 OAuth 提供商将来都将采用该行为,基于一篇文章,如果您感兴趣,您可以在此处找到该行为: Modernizing OAuth interactions in Native Apps for Better Usability and Security

话虽如此,我们正处于重大变化之中,因此为了使其发挥作用,您需要将您的移动应用服务设置为允许使用 url_scheme_of_your_app 进行外部重定向,如 Microsoft 文档教程中所示。

所以接下来的步骤是:

1.- 转到 Azure 门户

2.- 转到您的移动应用服务

3.- 选择身份验证/授权

4.- 在允许的外部重定向 URL 处写入:{urischeme}://easyauth.callback(这意味着 urischeme 必须是以字母开头的字母数字单词)。

5.- 保存更改。

现在,在你完成这些之后,你必须为你的客户工作那么如果您使用的是 UWP,请按照本教程操作: Add Authentication to your UWP.

这应该足够了,如果您使用模板 10,您所要做的就是在 OnStartAsync 方法中使用以下代码:

 if(startKind == StartKind.Activate)
{
ProtocolActivatedEventArgs protocolArgs = args as ProtocolActivatedEventArgs;
cloudService.ResumeWithUrl(protocolArgs.Uri);
}

您在本教程中节省了大量代码,因为您必须在 App.Xaml.cs 的 OnNavieratedTo() 方法和 OnActivated() 方法中编写代码

这就是 UWP 和 Template 10 中的架构,它的作用类似于 Application 类的包装器并简化了其使用。

希望这对您有帮助,您还会注意到,当您首次使用 urischeme 登录应用程序时,它会打开您的默认浏览器,并在成功登录后保持打开状态。

此外,单点登录重载方法根本不起作用,他们仍在解决这些问题。

希望我的回答对你有帮助!!!

关于c# - 使用 Azure 移动应用程序作为后端向 UWP 应用程序添加身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44758209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com