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

authentication_ui_failed: The browser based authentication dialog failed to complete

使用以下方法在通用应用程序中查询令牌结果: AcquireTokenAsync(字符串资源,字符串 clientId,Uri redirectUri,PromptBehavior promptBehavior);

在 F5 调试模式下没有问题,但通过已发布的商店应用程序包手动安装应用程序时出现错误。

错误信息:

authentication_ui_failed: 基于浏览器的身份验证对话框失败 完全的。系统找不到指定的资源。 (例外 来自 HRESULT:0x800C0005)

请检查您的通用应用程序的功能。必须启用以下功能才能显示 AAD 浏览器身份验证 UI 弹出窗口:

  1. 企业认证
  2. 互联网(客户端和服务器)
  3. 专用网络(客户端和服务器)
  4. 共享用户证书

如果您想从应用程序的 package.appxmanifest xml 文件中启用它们,您应该在 Capabilities 标签中包含以下条目,如下所示,它们以相同的顺序对应于上述功能:

<uap:Capability Name="enterpriseAuthentication"/>
<Capability Name="internetClient" />
<Capability Name="privateNetworkClientServer" />
<uap:Capability Name="sharedUserCertificates" />

希望对您有所帮助!

我得到了同样的错误消息,尽管我的问题是我使用了错误的 redirectURI。 需要使用生成的那个:

redirectURI = Windows.Security.Authentication.Web.WebAuthenticationBroker.GetCurrentApplicationCallbackUri();