Mantendo a Autenticação Básica HTTP viva enquanto é redirecionada
Estamos usando o serviço da web com autenticação básica. Tudo funcionou bem, até que os proprietários do serviço da Web implementaram o serviço de balanceamento. O que é simplesmente redireciona as solicitações para diferentes instâncias do serviço da web.
O problema é que, depois de ser redirecionado, a autenticação básica falha. Não há "credenciais de autenticação de solicitação não foi passada" exceção.
Informação adicional:
Temos que criar pedidos manualmente.
var req = (HttpWebRequest)WebRequest.CreateDefault(new Uri(Settings.Default.HpsmServiceAddress));
req.Headers.Add("Authorization", "Basic aaaaaaaaaaa");
req.PreAuthenticate = true;
req.AuthenticationLevel = AuthenticationLevel.MutualAuthRequested;
req.UserAgent = "Apache-HttpClient/4.1.1 (java 1.5)";
req.KeepAlive = false;
ServicePointManager.Expect100Continue = false;
req.ContentType = "text/xml; charset=utf-8";
req.Method = "POST";
req.Accept = "gzip,deflate";
req.Headers.Add("SOAPAction", actionName);
byte[] buffer = Encoding.UTF8.GetBytes(envelop);
Stream stm = req.GetRequestStream();
stm.Write(buffer, 0, buffer.Length);
stm.Close();
WebResponse response = req.GetResponse();
string strResponse = new StreamReader(response.GetResponseStream()).ReadToEnd();
response.Dispose();
Somos redirecionados com o redirecionamento HTTP 307