.NET webbrowser控件-自动输入弹出式登录表单

.NET webbrowser控件-自动输入弹出式登录表单,.net,forms,proxy,webbrowser-control,.net,Forms,Proxy,Webbrowser Control,希望这不会太痛苦 我试图通过webbrowser控件访问一个网站,我尝试了两种方法(实际上,通过谷歌搜索,结果参差不齐),但都存在以下问题: URL = "http://username:password@thewebsite.com" WebBrowser1.Navigate(URL) 1:此方法会弹出一个窗口安全性窗口,要求我登录到公司代理。我猜这是因为我正在使用网站的用户名/密码,而URL导航正试图将其输入代理 如果我尝试通过执行以下操作来自动/避免代理位: Dim Headers

希望这不会太痛苦

我试图通过webbrowser控件访问一个网站,我尝试了两种方法(实际上,通过谷歌搜索,结果参差不齐),但都存在以下问题:

 URL = "http://username:password@thewebsite.com"
 WebBrowser1.Navigate(URL)
1:此方法会弹出一个窗口安全性窗口,要求我登录到公司代理。我猜这是因为我正在使用网站的用户名/密码,而URL导航正试图将其输入代理

如果我尝试通过执行以下操作来自动/避免代理位:

Dim Headers As String = "Proxy-Authorization: Basic " & Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes("USERNAME:PASSWORD"))
WebBrowser1.Navigate(URL, "", Encoding.Unicode.GetBytes(String.Empty), Headers)
我仍然会遇到失败,因为不管怎样,代理登录框都会弹出

2: 如果我直接进入网站而不编辑URL:

 URL = "http://thewebsite.com"
 WebBrowser1.Navigate(URL)
然后我去了一个没有任何代理消息的网站(太棒了!),但是网站会弹出一个我需要填充的登录框。遗憾的是,我无法获得任何用于此(自动化)的ElementID,因为它是webbrowser控件之外弹出的windows窗体,而且我似乎无法查询它或找出如何输入它

有人对我下一步应该尝试什么有什么想法吗?有没有办法从方法2获取登录表单来填充它自己,或者至少让我查看该页面的源代码?在正确填充之前,我无法单击它

我似乎无法让任何东西为我处理两个登录表单,要么是一个,要么是另一个。(这两个表单看起来都像windows标准登录提示,它们没有内置到网页中)。
谢谢

您需要实现一个支持IServiceProvider的自定义浏览器控件站点,并提供as服务。当浏览器控件需要登录凭据时,它将回调您的
iaauthenticate
实现

下面的q/a可能会帮助您入门,尽管代码是C#:

[保留原始拼写]


[编辑]更具体地说,您需要实现,这将允许您通过区分代理和网站身份验证。

您需要实现一个自定义浏览器控件站点,支持
IServiceProvider
并提供as服务。当浏览器控件需要登录凭据时,它将回调您的
iaauthenticate
实现

下面的q/a可能会帮助您入门,尽管代码是C#:

[保留原始拼写]


[编辑]更具体地说,您需要实现,这将允许您通过区分代理和网站身份验证。

再次施救!谢谢你,本周剩下的时间里,我被拉到了一个不同的项目上,但下周我回到这项工作时,我会给出这个答案的反馈。没问题:]我真的不知道使用VB.NET有多可行,但是如果你有选择的话,您可能希望在C#中为自定义的
WebBrowser
包装类创建一个单独的程序集,如。我已经设法在VB中实现了上述功能(大部分)。但是,我仍然无法捕获这两个身份验证请求并同时将其自动化。但是,我修改了上面的内容,使网站登录表单弹出并自动填充(代理表单从不出现)。它只需要用户选择enter。目前这对我们来说已经足够好的妥协了(可悲的是,工作迫使我转向其他事情)。因此,我暂时不谈这件事。我把这个问题留待讨论,以防其他人对未来提出另一个想法。再次感谢,干得好!我想知道您是否尝试了属性以避免要求用户按enter键。我想在VB.NET中也这样做,但当我使用生成的代码翻译代码时,该代码在VB.NET中不可用。Poggy你愿意分享你的代码吗?thnx@Poggynoserection又来营救了!谢谢你,本周剩下的时间里,我被拉到了一个不同的项目上,但下周我回到这项工作时,我会给出这个答案的反馈。没问题:]我真的不知道使用VB.NET有多可行,但是如果你有选择的话,您可能希望在C#中为自定义的
WebBrowser
包装类创建一个单独的程序集,如。我已经设法在VB中实现了上述功能(大部分)。但是,我仍然无法捕获这两个身份验证请求并同时将其自动化。但是,我修改了上面的内容,使网站登录表单弹出并自动填充(代理表单从不出现)。它只需要用户选择enter。目前这对我们来说已经足够好的妥协了(可悲的是,工作迫使我转向其他事情)。因此,我暂时不谈这件事。我把这个问题留待讨论,以防其他人对未来提出另一个想法。再次感谢,干得好!我想知道您是否尝试了属性以避免要求用户按enter键。我想在VB.NET中也这样做,但当我使用生成的代码翻译代码时,该代码在VB.NET中不可用。Poggy你愿意分享你的代码吗?thnx@POGGY抑制宿主WebBrowser控制对话框抑制宿主WebBrowser控制对话框