Изменить: я хотел вернуться, чтобы заметить, что проблема не была на моем конце, а скорее с кодом на другой стороне компании.
Я пытаюсь подтянуть страницу с помощью Basic Authentication. Я продолжаю получать ошибку 404 страницы. Я могу скопировать и вставить свой url в браузер, и он отлично работает (если я не зашел на их сайт, он выведет окно учетных данных, иначе он откроет то, что я хочу открыть). Я должен быть в правильном месте и проверять подлинность, потому что я получаю 401 (не аутентифицированная ошибка), если я намеренно вставляю плохое имя пользователя/пароль, и я получаю ошибку внутреннего сервера 500, если я передаю ему плохой параметр в строке запроса, Я пробовал использовать Webclient и HttpWebRequest, что приводило к тому же 404 не найденной ошибке.
С Webclient:
string url = "MyValidURLwithQueryString";
WebClient client = new WebClient();
String userName = "myusername";
String passWord = "mypassword";
string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(userName + ":" + passWord));
client.Headers[HttpRequestHeader.Authorization] = "Basic " + credentials;
var result = client.DownloadString(url);
Response.Write(result);
С HttpWebRequest
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("MyValidURL");
string authInfo = "username:password";
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
request.Headers.Add("Authorization", "Basic " + authInfo);
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Http.Get;
request.AllowAutoRedirect = true;
request.Proxy = null;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader streamreader = new StreamReader(stream);
string s = streamreader.ReadToEnd();
Response.Write(s);