Autenticação básica de proxy em C #: erro HTTP 407

Estou trabalhando com um proxy que requer autenticação, ou seja, em um navegador, se eu tentar abrir uma página, ela solicitará credenciais imediatamente. Forneci as mesmas credenciais no meu programa, mas ele falha com o erro HTTP 407.

Aqui está o meu código:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);

IWebProxy proxy = WebRequest.GetSystemWebProxy();
CredentialCache cc = new CredentialCache();
NetworkCredential nc = new NetworkCredential();

nc.UserName = "userName";
nc.Password = "password";
nc.Domain = "mydomain";
cc.Add("http://20.154.23.100", 8888, "Basic", nc);
proxy.Credentials = cc;
//proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
request.Proxy = proxy;
request.Proxy.Credentials = cc;
request.Credentials = cc;
request.PreAuthenticate = true;

Eu tentei todas as coisas possíveis, mas parece que estou perdendo alguma coisa. É algo como, eu tenho que fazer dois pedidos? Primeiro sem credenciais e quando receber uma resposta do servidor sobre a necessidade de credenciais, faça o mesmo pedido com credenciais?

questionAnswers(10)

yourAnswerToTheQuestion