如何在新的浏览器窗口中打开URL,该窗口受用户名/密码对话框保护并自动填充这些字段(甚至更好地将凭据传递给浏览器)?
注意我需要在新的浏览器窗口中打开它,不 WPF WebControl。
目前我正在使用LaunchUriOrFileAction
,可以正常打开新的浏览器窗口,但我需要自动填充凭据。
默认浏览器将是客户端的IE8。所以http://user:pass@example.com
的旧方法不会起作用。
由于
答案 0 :(得分:3)
以下解决方案使用WebBrowser控件打开新的IE浏览器窗口。它有效,但有几个限制:
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"
);