c# – System.Windows.Forms.WebBrowser有时会执行NTLM身份验证 – 为什么?

我有一个针对.NET 2.0的Windows窗体应用程序.我正在尝试通过SAML 2.0协议添加单点登录功能,其中最有效的表观解决方案是嵌入式Web浏览器.

我已经使用一个虚拟应用程序进行了验证,该应用程序仅包含NTLM交换确实发生的WebBrowser控件.但是,当我将相同的控件嵌入到更大的应用程序中时,浏览器不会响应初始的HTTP 401挑战,而是重定向到IE的“导航已取消”页面.

谷歌还没有出现,我对这种行为感到困惑.任何人都可以对可能阻碍WebBrowser凭据协商的内容有所了解吗?

解决方法:

我在(工作)测试应用程序和(不工作)完整应用程序之间的逐行比较中发现了答案.

为我启用NTLM协商的关键是将ScriptErrorsSuppressed设置为false.我本来打算隐藏我们用户的Javascript错误弹出窗口,但是抑制它们也会抑制凭据协商.去搞清楚.

上一篇:c# – 在网络服务帐户下访问Windows共享


下一篇:java 8 从一个list对象转list对象的属性