utenticación básica Proxy en C #: error HTTP 407

Estoy trabajando con un proxy que requiere autenticación, es decir, en un navegador si trato de abrir una página, me solicitará credenciales de inmediato. Proporcioné las mismas credenciales en mi programa pero falla con el error HTTP 407.

Aquí está mi 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;

He intentado todo lo posible, pero parece que me falta algo. ¿Es algo así como que tengo que hacer dos solicitudes? Primero sin credenciales y una vez que escuche del servidor sobre la necesidad de credenciales, ¿solicito lo mismo con credenciales?