Windows 8.1应用程序WebView无法重定向并启用了专用网络功能

时间:2015-06-25 21:14:37

标签: javascript webview windows-store-apps

我正在编写一个Windows 8.1应用程序,该应用程序使用OAUTH访问REST API。我使用x-ms-webview控件显示登录信息。自从我实现它以来,这个工作正常。

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

尝试访问开发服务器会导致Windows阻止请求,除非我添加"专用网络(客户端和服务器)" package.appxmanifest中的应用功能。没问题,但是当启用该功能时,授权无法正确重定向,而是显示空白屏幕。

奇怪的是,生产服务器在"私人网络"已启用(即使它是可公开访问的服务器)。然而,在提供给localhost的页面上加载相同的标记将正确重定向。如果WebView在本地或外部(无论是内部网还是Internet)托管,它们必须做出不同的反应。有没有人知道WebView的行为如何改变"私人网络"标志以及我如何能够访问内部网站点?

我怀疑Windows由于可能存在代理而阻止了重定向。通过Intranet访问,您可以设置一个代理,可以非常轻松地访问更大的互联网,即使它没有在应用程序的功能中启用。但是我确实有#34;互联网(客户端)"功能已启用,因此不存在安全问题。

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

1 个答案:

答案 0 :(得分:0)

经过多次痛苦和痛苦后,我发现WebView没有遵循重定向的原因是因为重定向是localhost(授权代码在URL的查询参数中)。显然,Windows启用“专用网络(客户端和服务器)”时拒绝访问localhost。我不完全理解为什么应用程序无法访问localhost,但显然Windows会立即拒绝这些连接。 1

@Microsoft:当我尝试连接内部网时,Visual Studio发出警告,告诉我Windows主动拒绝连接,因为我没有启用“专用网络(客户端和服务器)”,这个问题我能够几秒钟内修复。如果您对此做了完全相同的事情并且只是说“Windows拒绝连接到localhost因为'私有网络(客户端和服务器)'已启用,那么您本可以节省我两周。”有没有理由没有发生? /咆哮

我能够通过让服务器重定向到自己域上的404页面而不是转到localhost来解决这个问题。 Windows接受了该连接,我能够从URL获取授权代码并完成我的工作。