Я хотел бы знать, почему мое приложение asp.net не добавит заголовок к моему сообщению, когда он называется «Авторизация», но будет работать нормально, когда я сменил один символ, скажем «Авторизация». В документации для других сайтов они всегда используют имя «Авторизация», поэтому я хотел бы также, и на данный момент я просто хочу понять, почему.Заголовок авторизации HTTP ASP.NET
Я прочитал несколько тем об этом, но не нашел логической причины.
Вот мой код ниже:
string fileName = "c:\\xyz.xml";
string uri = "http://myserver/Default.aspx";
req = WebRequest.Create(uri);
req.Method = "POST";
req.ContentType = "text/xml";
byte[] authBytes = Encoding.UTF8.GetBytes("DDSServices:jCole2011".ToCharArray());
req.Headers.Add("Authorization", "BASIC " + Convert.ToBase64String(authBytes));
req.Headers.Add("test", "test");
UTF8Encoding encoder = new UTF8Encoding();
byte[] data = encoder.GetBytes(this.GetTextFromXMLFile(fileName));
req.ContentLength = data.Length;
Stream reqStream = req.GetRequestStream();
reqStream.Write(data, 0, data.Length);
reqStream.Close();
req.Headers.Add("Authorization", "BASIC" + Convert.ToBase64String(authBytes));
System.Net.WebResponse response = req.GetResponse();
System.IO.StreamReader reader = new StreamReader(response.GetResponseStream());
string str = reader.ReadToEnd();
Другой раздражает это, когда я добавить наблюдаемой переменной через стельку он работает отлично.
или есть логическая причина? У очень большой сторонней компании, с которой мы работаем, есть документация с их авторизацией таким же образом, поэтому я хотел бы знать причину. – Cody
Гораздо лучше использовать подход NetworkCredential, как предполагает Уилл. Тем не менее, ваш подход также должен работать нормально, хотя я не понимаю, почему вы делаете это дважды (один перед вызовом GetRquestStream и один раз после этого. Вы должны сделать это сразу после того, как вы вызовете GetRequestStream. Если он все еще не работает, журнал трассировки. Инструкции по адресу http://ferozedaud.blogspot.com/2009/08/tracing-with-systemnet.html – feroze
Можете ли вы рассказать мне, почему это лучше? Или где я могу прочитать о том, почему это лучше? кажется, NetworkCredentials будет привязан к проверке объявлений или форм, я бы предпочел, чтобы соединение было через анонимное, а затем просто проверило. В любом случае, может кто-то просто скажет мне, почему? Я почти не забочусь о том, что на данный момент. – Cody