使用凭据打开网址

时间:2012-06-04 15:05:58

标签: c# url webbrowser-control

我们有一个知识库,我们希望从桌面应用程序链接以获取帮助。

我尝试使用默认的网络浏览器打开它,但我们设置了.htaccess凭据,因此系统会提示他们。我不希望他们输入用户名和密码,因为我们只为应用程序设置一个。

这会导致每次都提示它们:

Dim url = "http://mysite.com/index.php?/category/40/0/10/"
Process.Start(url)

我不能再将用户名和密码放在网址中,因为IE9不支持它:

http://username:pass@url.com< - 新浏览器不支持

我尝试使用webbrowser控件,但它使用的是IE4,而不是当前的任何东西。这导致它显示不正确。

Dim hdr = "Authorization: Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes("myuser" + ":" + "password")) + System.Environment.NewLine
WebBrowser1.Navigate(Url, Nothing, Nothing, hdr)

我试图使注册表设置强制IE9,但我无法让它工作。此外,从我读过的内容来看,如果他们没有IE9就无所谓了。

有关如何解决此问题的任何建议?我只是想从我的应用程序中打开一个安全的网页!

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在进行任何进一步编码之前搜索基本身份验证的工作原理。您可以使用HttpAnalyzer或任何其他工具来查看浏览器如何在其请求的标头中发送用户名和密码。他们只使用标题的身份验证部分。您必须构建一个新请求或找到一个现成的框架来为您执行此操作。

基本身份验证通常由2个请求/响应组成。浏览器最初对身份验证一无所知,但服务器会通过401回复代码宣布他,这意味着浏览器应该提供身份验证。从现在开始,所有请求都有一个使用Base64编码的Authentication头,其中包含用户名和密码。