【发布时间】:2011-06-03 21:54:09
【问题描述】:
我正在开发我的第一个 Windows 窗体应用程序以使用 WebKit.Net。我需要连接到一个 https 站点并弹出一个身份验证表单。使用 .Net 的内置浏览器,身份验证表单会自动弹出,但 WebKit 只是让我进入 401 身份验证错误页面,我不知道如何让它进行身份验证。有任何想法吗?
即使我能在核心 webkit 库中弄清楚如何做到这一点,我也可以修改 WebKit.Net 以支持它,但我什至找不到。我试着搜索铬源,看看他们是如何处理它的,但它超出了我的想象。任何帮助表示赞赏。
~therealmitchconnors
更新: WebKit.NET 建立在 WebKit 的 WinCairo 端口之上,该端口使用 CFLite 代替 Apple 封闭的 CFNetwork dll。显然,CFLite 不支持身份验证挑战,这是执行此操作的“正确”方式。因此,我在 WebResourceLoadDelegate 中添加了一些代码来检查用户名和密码,如果提供了,但未包含标头,则取消该 Web 请求并重新调用导航方法,包括用户名和密码。这是一个非常丑陋的黑客,但它有效。在 webkitdotnet/therealmitchconnors 上查看。
现在要弄清楚如何结束一个问题...
【问题讨论】:
-
从这篇文章link 看来,WebView 类的 Android 实现包含一个 SetHTTPAuthentication 方法来执行此操作,但 WebKit.Interop.WebViewClass 不包含此方法。这是 webkit 的不同实现吗?
-
好吧,我可以使用 WebMutableRequest.setValue() 手动设置 WebBrowserCore.Navigate() 方法中的 Authentication 标头,但这仅在用户从导航栏导航时调用。如果单击超链接或触发重定向,则在发送请求对象之前我无法找到访问它的方法。
-
您知道是否可以读取 WebKit 中的 HTTP 标头吗? stackoverflow.com/questions/10458961/…
-
在您的链接问题中查看我的回复...
标签: webkit basic-authentication http-authentication webkit.net