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

时间:2011-12-12 03:21:04

标签: c# winforms browser credentials ntlm

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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