Поддержание базовой аутентификации HTTP во время перенаправления
Мы используем веб-сервис с базовой аутентификацией. Все работало нормально, пока владельцы веб-сервисов не внедрили балансировочный сервис. Который просто перенаправляет запросы на разные экземпляры веб-сервиса.
Проблема в том, что после перенаправления обычная аутентификация не проходит. Есть "запрос аутентификации не прошел исключение.
Дополнительная информация:
Мы должны создать запрос вручную.
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();
Мы перенаправлены с перенаправлением HTTP 307