D
D
Didar Kamiljanow2022-03-30 11:22:56
C++ / C#
Didar Kamiljanow, 2022-03-30 11:22:56

Problem in Proxy Credential on Web Browser C#?

Good day to all friends. I want to use a proxy on WebBrowser C#, I set the proxy through the data registry, but I also need to go through authorization, and here I have a problem! If someone knows tell me)

Code:

[DllImport("wininet.dll", SetLastError = true)]
        public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);
        public const int INTERNET_OPTION_SETTINGS_CHANGED = 39;
        public const int INTERNET_OPTION_REFRESH = 37;

public Form1()
        {
            InitializeComponent();

            setProxyRegistry("170.83.233.178:8000", true, "mKocHY", "oRVhSg");

            webBrowser1.Navigate("http://www.showmyip.co.uk/");

            Credential credentials = new Credential
            {
                Username = "mKocHY",
                Password = "oRVhSg",
                Target = "http://170.83.233.178:8000",
                Type = CredentialType.Generic,
                PersistanceType = PersistanceType.Enterprise
            };
            credentials.Save();

            webBrowser1.Navigate("http://www.showmyip.co.uk/");
        }

void setProxyRegistry(string proxyhost, bool proxyEnabled, string username, string password)
        {
            const string userRoot = "HKEY_CURRENT_USER";
            const string subkey = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";
            const string keyName = userRoot + "\\" + subkey;

            Registry.SetValue(keyName, "ProxyServer", proxyhost, RegistryValueKind.String);
            Registry.SetValue(keyName, "ProxyEnable", proxyEnabled ? "1" : "0", RegistryValueKind.DWord);

            Registry.SetValue(keyName, "ProxyPass", password, RegistryValueKind.String);
            Registry.SetValue(keyName, "ProxyUser", username, RegistryValueKind.String);

            //<-loopback>;<local>
            Registry.SetValue(keyName, "ProxyOverride", "*.local", RegistryValueKind.String);


            // These lines implement the Interface in the beginning of program 
            // They cause the OS to refresh the settings, causing IP to realy update
            InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0);
            InternetSetOption(IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero, 0);
        }


Problem:
624413087a31c956447275.png

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question