我们正在使用具有基本身份验证的 Web 服务。一切都很好,直到 Web 服务的所有者实现了平衡服务。这只是将请求重定向到不同的 Web 服务实例。
问题是被重定向后基本身份验证失败。出现“请求身份验证凭据未通过”异常。
附加信息:
我们必须手动创建请求。
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 重定向重定向