为了账号安全,请及时绑定邮箱和手机立即绑定

基于浏览器的身份验证对话框未能完成

基于浏览器的身份验证对话框未能完成

C#
茅侃侃 2022-06-12 14:38:12
我有一个 WPF 应用程序,我正在关注本教程:https ://blogs.msdn.microsoft.com/dsnotes/2017/05/10/adal-secure-web-api-with-adfs-3-0- for-desktop-client/让 WPF 通过 ADFS 进行身份验证。我在主页上有一个按钮,这是按钮单击事件处理程序的代码:string authority = "https://server1.mycompany.local/adfs";string resourceURI = "https://localhost/MyWebAPIsample/";string clientID = "bdf737f9-567a-4998-b5e5-500b9bc2d776";string clientReturnURI = "https://arbitraryreturnuri/";var authContext = new AuthenticationContext(authority, false);var authResult = await authContext.AcquireTokenAsync(resourceURI, clientID, new Uri(clientReturnURI), new PlatformParameters(PromptBehavior.Auto));在最后一行var authResult = await ...我得到这个错误: Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException: ' The browser based authentication dialog failed to complete. Reason: The request could not be processed by the server due to invalid syntax.'和authentication_ui_failed但是,在 UI 上,我清楚地看到了身份验证窗口弹出,我可以输入我的 AD 凭据来登录。我已经尝试过其他帖子的修复,但我似乎无法弄清楚出了什么问题。我的代码有什么明显的错误,或者我应该仔细检查以找出发生了什么吗?我还是 AD、ADFS 和 ADAL 库的新手。谢谢!注意:我正在将 Visual Studio 2017 与 Windows Server 2016 一起使用。我有一个 NodeJS 后端,但我认为这与本次讨论无关。
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

经过几个小时的愚蠢调试,我终于解决了这个问题。在另一个线程上,我遇到了一个说“启用表单身份验证”的解决方案,我检查并启用了它,所以我认为这很好。但是,我检查了其他项目(同样,我还是 ADFS 的新手),这导致我的系统不使用表单身份验证(我不知道 - 我只知道我正在输入我的 AD 用户凭据) . 取消选择所有其他选项后,身份验证似乎与我原来的身份验证窗口略有不同并且可以正常工作。

以下是 Windows Server 2016 上访问“身份验证”的步骤,解释为我五岁,因为这是我对 adfs 的理解水平

  1. 打开服务器管理器

  2. 在工具下,打开 AD FS 管理

  3. 单击Services左侧的选项卡

  4. 右键单击Authentication Methods并选择Edit Primary Authentication Methods

  5. 取消选择除Forms authenticationIntranet 和 Extranet之外的所有身份验证方法


查看完整回答
反对 回复 2022-06-12
  • 1 回答
  • 0 关注
  • 235 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信