-->

providing domain/user credentials to webview contr

2019-06-25 17:19发布

有谁知道如何提供凭据的WebView控件(甚至更好? - 在一个特定的域用户的上下文中运行Windows 8的Metro风格应用程序/应用程序的WinRT),我试过以下HttpClient的+的WebView方法,因为在这里列出( http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/05e46a0a-e913-469d-a4a5-4a805dcf158a),但它仍然会提示用户输入凭据,因为在返回的内容有链接受保护的项目。

我有一个的NetworkCredential对象,我几乎想将它应用到被做每一个HTTP调用。

当然一定有人这样做过? :)

Answer 1:

为了连接到网站在企业网络上,您必须启用您Package.appxmanifestprivateNetworkClientServer能力。 您可以在XML做到这一点还是在Visual Studio中的文件,您可以双击和使用设计(功能选项卡)。 在UI,它被称为“家庭或工作网络”。

现在,您可以访问您可以导航到该网站的内部网,但系统会提示您提供凭据。 如果你希望用户域身份自动提供(在企业单点登录),你需要启用enterpriseAuthentication能力以及。 这是在清单UI称为“企业身份验证”。

从那里,你应该能够使用的WebView浏览到任何Intranet站点,而不必进行身份验证。 如果你正在寻找做的WebView以外的事情,你应该看看下面的文章和样本:

使用WebAuthenticationBroker:

http://code.msdn.microsoft.com/windowsapps/Web-Authentication-d0485122

WebAuthenticationBroker有一个名为UseCorporateNetwork的选项。 确保沿着上面的样品中以下时使用。

最后,如果你想要做单点登录其他网站,如Facebook或Flicr,看到这个示例:

http://msdn.microsoft.com/en-US/library/windows/apps/xaml/Hh465283



Answer 2:

我已经跨越同样的问题来了,但幸运的是找到了答案:)这里的主要问题是,Windows应用商店的应用程序包含2点不同势的HttpClient的

其中之一就是“经典”的一个,我们知道从C#应用程序(自动使用),另一种是“新”的HttpClient - 这是用的WebView连接:)

贝娄是两种类型:System.Net.Http.HttpClient(经典之一)Windows.Web.Http.HttpClient(新)

所以请记住申报新的,这样做的代码波纹管

var filter = new HttpBaseProtocolFilter();    
filter.ServerCredential = new Windows.Security.Credentials.PasswordCredential("http://website","login", "password");
            Windows.Web.Http.HttpClient client2 = new Windows.Web.Http.HttpClient(filter);
            var response = await client2.GetAsync(new Uri("http://website"));
 WebView.Source = new Uri("http://website");

现在还记得改登录名和密码要使用的凭据,一个网站要进行身份验证的网站。

从服务器获取的响应是很重要的 - 这会让用户认证服务器@所以下次你去webView的了你将要验证该网站的时间

它正常工作与基本身份验证和NTLM身份验证

在这种情况下CAE记得有enterpriseAuthentication关闭

希望这将有助于人们寻找这个问题的解决方案:)



文章来源: providing domain/user credentials to webview control