private static void RefreshProxyAccount(string username, string password)
{
const int INTERNET_OPTION_PROXY_USERNAME = 43;
const int INTERNET_OPTION_PROXY_PASSWORD = 44;
if (!string.IsNullOrEmpty(username) || !string.IsNullOrEmpty(password))
{
var ret = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_USERNAME, IntPtr.Zero, 0);
ret = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_PASSWORD, IntPtr.Zero, 0);
}
else
{
var pUser = Marshal.StringToBSTR(username);
var pPass = Marshal.StringToBSTR(password);
try
{
var ret = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_USERNAME, pUser, username.Length + 1);
ret = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY_PASSWORD, pPass, password.Length + 1);
}
finally
{
Marshal.FreeBSTR(pUser);
Marshal.FreeBSTR(pPass);
}
}
}