Windows 8.1 应用 WebView 无法在启用专用网络功能的情况下重定向

Windows 8.1 app WebView cannot redirect with Private Networks capability enabled

我正在编写一个 Windows 8.1 应用程序,它访问带有 OAUTH 的 REST API。我使用 x-ms-webview 控件显示了登录信息。自从我实施以来,它运行良好。

现在,我需要从他们的生产服务器切换到他们的开发服务器以开始添加一些新功能。授权方式相同,但生产服务器是公开可用的,而开发服务器只能在公司内部网访问。

尝试访问开发服务器会导致 Windows 阻止请求,除非我将 "Private Networks (Client & Server)" 添加到 package.appxmanifest 中的应用功能。很好,但是当启用该功能时,授权无法正确重定向,而是显示一个空白屏幕。

奇怪的是,生产服务器在启用 "Private Networks" 时也有同样的问题(即使它是一个可公开访问的服务器)。然而,在服务于 localhost 的页面上加载相同的标记将正确重定向。如果 WebView 托管在本地或外部(无论是内联网还是互联网),它的反应必须不同。有谁知道 WebView 行为如何根据 "Private Networks" 标志发生变化以及我如何能够访问 Intranet 站点?

我怀疑 Windows 由于代理的可能性而阻止了重定向。通过 Intranet 访问,您可以设置一个相当容易访问更大 Internet 的代理,即使它没有在应用程序的功能中启用。但是我确实启用了 "Internet (Client)" 功能,所以这不是安全问题。

有人知道如何解决这个问题吗?

在经历了很多痛苦之后,我发现 WebView 没有遵循重定向的原因是因为重定向是到本地主机(授权代码在 URL 的查询参数中)。显然,Windows 在启用 "Private Networks (Client & Server)" 时拒绝访问本地主机。我不完全理解为什么应用程序无法访问本地主机,但显然 Windows 立即拒绝这些连接。1

@Microsoft:Visual Studio在我尝试连接内网时发出警告,告诉我Windows主动拒绝连接,因为我没有启用"Private Networks (Client & Server)",一个问题我能够在几秒钟内修复。如果你对此做了完全相同的事情并且只是说 "Windows refused a connection to localhost because 'Private Networks (Client & Server)' is enabled." 有没有没有发生的原因,你本可以节省我两周的时间? /咆哮

我能够通过让服务器重定向到它自己域上的 404 页面而不是转到本地主机来解决这个问题。 Windows 接受了该连接,我能够从 URL 获取授权码并执行我的操作。