Получить учетные данные прокси для веб-прокси по умолчанию / системы - PullRequest
0 голосов
/ 07 апреля 2020

Я хочу получить мой Прокси-сервер системы по умолчанию с сохраненными учетными данными. Сценарий: у меня есть Cef browserControl, для которого мне нужно установить параметры прокси. Я установил на своей машине сервер squid и создал пользователя с паролем. Я настроил свой Windows 10, чтобы он использовал прокси-сервер squid. Я добавил учетные данные пользователя в windows CredentialManager (см. Рисунок. AnmeldeInformationsVerwaltung)

enter image description here

Что до сих пор не получалось: я пытался получить настройки прокси через WebRequest.GetSystemWebProxy();, который работает хорошо. Проблема, с которой я сталкиваюсь, заключается в том, что SystemWebProxy не имеет прикрепленных учетных данных.

Есть ли возможность получить прокси с прикрепленными учетными данными или получить сами учетные данные?

Мой элементарный метод выглядит следующим образом

private static void SetCefProxyWithSystemProxy()
{
    Uri address = null;
    String userName = String.Empty;
    String password = String.Empty;
    if (this.Kernel.TryGetSystemProxyUri(out address))
    {
        try
        {
            //out address.AbsoluteURI = http://192.168.178.48:3128/
            //out addrsss.Host = 192.168.178.48

            IWebProxy webProxy = WebRequest.GetSystemWebProxy();
            NetworkCredential credential = ((NetworkCredential)webProxy.Credentials); //Maybe?
            if (credential == null)
            {
                System.Net.NetworkCredential cred = new NetworkCredential();
                credential = cred.GetCredential(address, "Basic"); //Maybe this? //Whats 

                //empty credentials found :/
            }
            if (credential != null)
            {
                userName = credential.UserName;
                password = credential.Password;
            }
        }
        catch (Exception ex)
        {
            //Logging action
        }

        CefSharpSettings.Proxy = new ProxyOptions(address.Host, address.Port.SafelyToString(), userName, password);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...