Webkit HTTPS 身份验证

发布于 2024-11-13 11:42:40 字数 595 浏览 2 评论 0原文

我正在开发我的第一个使用 WebKit.Net 的 Windows 窗体应用程序。我需要连接到 https 站点并弹出身份验证表单。使用.Net的内置浏览器,身份验证表单会自动弹出,但WebKit只是将我带到401身份验证错误页面,而且我不知道如何进行身份验证。有什么想法吗?

即使我可以弄清楚如何在核心 webkit 库中执行此操作,然后我可以修改 WebKit.Net 以支持它,但我什至找不到它。我尝试搜索铬源,看看他们如何处理它,但这超出了我的能力范围。任何帮助表示赞赏。

~therealmitchconnors

更新: WebKit.NET 基于 WebKit 的 WinCairo 端口构建,它使用 CFLite 代替 Apple 的封闭式 CFNetwork dll。显然,CFLite 不支持身份验证质询,而这是执行此操作的“正确”方法。因此,我在 WebResourceLoadDelegate 中添加了一些代码来检查用户名和密码,如果提供了用户名和密码,但未包含标头,则取消该 Web 请求并重新调用导航方法,包括用户名和密码。这是一个非常丑陋的黑客,但它确实有效。请访问 webkitdotnet/therealmitchconnors 进行查看。

现在要弄清楚如何结束问题......

I am working on my first windows forms app to use WebKit.Net. I need to connect to an https site and popup an authentication form. Using .Net's built in browser, the authentication form pops up automatically, but WebKit just drops me at the 401 Authentication error page, and I can't figure out how to make it authenticate. Any ideas?

Even if I can figure out how to do this in the core webkit library, I can then modify WebKit.Net to support it, but I can't even find that. I tried searching the chromium source to see how they handle it, but it was way over my head. Any help is appreciated.

~therealmitchconnors

UPDATE:
WebKit.NET is built on WebKit's WinCairo port, which uses CFLite in place of Apple's closed CFNetwork dll. Evidently, CFLite does not support Authentication Challenge, which is the 'right' way to do this. So, I added some code in the WebResourceLoadDelegate to check for a username and password, and, if one was provided, but the header is not included, cancel that web request and re-call the navigate method, including the username and password. It's a really ugly hack, but it works. Check it out at webkitdotnet/therealmitchconnors.

Now to figure out how to close a question...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兮子 2024-11-20 11:42:40

API 中没有办法做到这一点。请参阅上面的更新以了解我的解决方法。

There is no way in the API to do this. See my update above for my workaround.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文