Set Proxy Credential in Web Browser Control
I am working on a legacy code where an application uses AxSHDocVw.AxWebBrowser
(not System.Windows.Forms.Control
) to open up web pages and am extending it to take proxy into considerations.
I have following example on http://www.pinvoke.net/default.aspx/wininet/internetsetoption.html to use InternetSetOption()
to go through specified proxy and tested that it works.
Now the hurdle is I tried everything but failed to pass username and password with following code:
//-- 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();
Both resultF
and resultG
return true
and has no errors but it still working. Any hint on what may be happening here? and what method do I hav开发者_运维知识库e to debug this?
Thanks in advance.
I actually found a work'able solution, where it was lie under navigation with Proxy-Authentication in header:
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);
where browser
is:
public AxWebBrowser browser;
精彩评论