c# - WebView 不提示内网登录
问题描述
我有一个示例 WPF 应用程序,它使用选项卡允许用户使用不同的嵌入式浏览器导航到 uri。我已将 Microsoft.Toolkit.Win32.UI.Controls 添加到我的项目中,并尝试将 WebView 用于其中一个选项卡。
使用
<WebBrowser Name="Browser" Margin="0,0,0,0"/>
我在访问我们公司的 Intranet 站点时遇到了安全挑战。这很好!
使用
<Window x:Class="BrowserTester.MainWindow"
xmlns:WPF="clr-namespace:Microsoft.Toolkit.Win32.UI.Controls.WPF;assembly=Microsoft.Toolkit.Win32.UI.Controls"
...
>
...
<WPF:WebView Name="WebView" Margin="0,0,0,0"/>
访问我们公司的 Intranet 站点时,我没有遇到安全挑战。我只是得到失败的登录页面。这是不好的!
使用 Edge 我收到提示,因此理论上 WebView 应该使用正确的设置:
我还设置了:
WebView.Settings.IsScriptNotifyAllowed = true;
无济于事。
根据一个站点对 Windows 集成身份验证的建议,我已将该站点显式添加到 Internet 选项Local Intranet
区域,并将User Authentication
>设置Logon
为“提示输入用户名和密码”。
WebView 的文档不涉及身份验证,所以我的研究有点难过。
检查 Edge 中的网络流量时,我看到以下内容:
Status Code: 401 / Unauthorized
在我看到的响应标头中:
Server: Apache/2.4.18 (Ubuntu) OpenSSL/1.0.2g
WWW-Authenticate: Basic realm=***.*****.com
这可能会为正在发生的事情提供线索。
解决方案
推荐阅读
- javascript - 具有可变最大值的范围滑块
- angular - 如何将参数传递给 @ngrx/component-store 选择器?
- r - 使用 R 解析函数中的多个命名参数
- unreal-engine4 - 如何在演员虚幻引擎 4 上添加两个脚本
- java - 如何让按钮在 JavaFX 中重叠图像?
- amazon-ecs - 如何使用 Route53 DNS 将 AWS Fargate ECS 容器公开到 Internet?
- reactjs - 点击 Gatsby 中的链接后,整个网站都卡住了
- angular - 带有数组的行为主题
- r - 按组计算数据帧中的频率
- python - SQL Server Python ML 服务中的 FileNotFoundError