Установить учетные данные прокси в элементе управления веб-браузера - PullRequest
0 голосов
/ 26 марта 2010

Я работаю над устаревшим кодом, где приложение использует AxSHDocVw.AxWebBrowser (, а не System.Windows.Forms.Control), чтобы открывать веб-страницы, и расширяю его для учета прокси.

У меня есть следующий пример на http://www.pinvoke.net/default.aspx/wininet/internetsetoption.html, чтобы использовать InternetSetOption(), чтобы пройти через указанный прокси и проверить, что он работает.

Теперь проблема в том, что я попробовал все, но не смог передать имя пользователя и пароль со следующим кодом:

//-- Set Proxy Username
bool resultF = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_USERNAME, username, username.Length+1);
var errorF = Marshal.GetLastWin32Error();

//-- Set Proxy Password
bool resultG = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_PASSWORD, password, password.Length+1);
var errorG = Marshal.GetLastWin32Error();

Оба resultF и resultG возвращают true и не имеют ошибок, но все еще работают. Любой намек на то, что может происходить здесь? и какой метод я должен отладить это?

Заранее спасибо.

1 Ответ

1 голос
/ 30 марта 2010

Я действительно нашел работоспособное решение, где оно находилось под навигацией с прокси-аутентификацией в заголовке:

var credentialStringValue = "user:pass";
var credentialByteArray = ASCIIEncoding.ASCII.GetBytes(credentialStringValue);
var credentialBase64String = Convert.ToBase64String(credentialByteArray);

Object nullObject = 0;
Object nullObjectString = "";
Object authObject = string.Format("Proxy-Authorization: Basic {0}{1}", credentialBase64String, Environment.NewLine);

browser.Navigate(args.Url, ref nullObject, ref nullObject, ref nullObjectString, ref authObject);

, где browser:

public AxWebBrowser browser;
...