基于浏览器的身份验证对话框无法完成



我有一个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 ...的最后一行,我得到了以下错误:CCD_ 2和CCD_ 3

但是,在UI上,我清楚地看到身份验证窗口弹出,我可以输入我的AD凭据登录。我已经尝试过其他帖子中的修复,但我似乎不知道出了什么问题。我的代码有什么明显的错误吗?或者我应该仔细检查一下,看看发生了什么?我还是AD、ADFS和ADAL库的新手。非常感谢。

注意:我正在使用Visual Studio 2017和Windows Server 2016。我有一个NodeJS后端,但我认为这与本次讨论无关。

经过几个小时的愚蠢调试,我终于解决了这个问题。在另一个线程中,我遇到了一个解决方案,上面写着"启用表单身份验证",我检查了一下,它已经启用,所以我认为这很好。但是,我检查了其他项目(同样,我还是ADFS的新手(,这导致我的系统不使用表单身份验证(我无法判断——我只知道我在输入AD用户凭据(。在取消选择所有其他选项后,身份验证似乎与我最初的身份验证窗口略有不同,并且有效。

以下是Windows Server 2016上访问"身份验证"的步骤,就像我五岁一样解释,因为这是我理解的adfs水平

  1. 打开服务器管理器
  2. 在工具下,打开AD FS管理
  3. 单击左侧的Services选项卡
  4. 右键单击Authentication Methods并选择Edit Primary Authentication Methods
  5. 取消选择intranet和extranet上除Forms authentication之外的所有身份验证方法

最新更新