以下解决方案使用web浏览器控件打开一个新的IE浏览器窗口。它的工作原理,但有几个limitiations:
- 很明显,它只能打开IE浏览器 - 这不会,如果你想让它打开Firefox
- 新的浏览器窗口出现在后台工作,以闪烁的按钮在任务栏
- 浏览器实际上并不记得凭证,以便用户会得到提示,如果他们试图导航到另一个密码保护的网页
void OpenIEToAuthenticatedUrl(string url, string username, string password)
{
using (WebBrowser browser = new WebBrowser()) {
string userPass = username + ":" + password;
string encodedUserPass = Convert.ToBase64String(
Encoding.ASCII.GetBytes(userPass)
);
browser.Navigate(
url,
Guid.NewGuid().ToString(), // Force a new window by passing a unique frame name
null, // No POST data
"Authorization: Basic " + encodedUserPass
);
}
}
...
OpenIEToAuthenticatedUrl(
"http://example.com/",
"user", "pass"
);
谢谢,它至少有一个开始,IE的问题很好,但背景窗口是个问题 – Mark