Как отправить авторизованный запрос - PullRequest
1 голос
/ 11 ноября 2010

Я программно отправляю запрос на удаленный сервер:

string xml = "SomeXML Data";

string url = @"http://someserver.com";

WebRequest request = WebRequest.Create(url);
request.Method = "Post";
request.ContentType = "text/xml";

//The encoding might have to be chaged based on requirement
UTF8Encoding encoder = new UTF8Encoding();
byte[] data = encoder.GetBytes(xml); //postbody is plain string of xml
request.ContentLength = data.Length;
Stream reqStream = request.GetRequestStream();
reqStream.Write(data, 0, data.Length);
reqStream.Close();
System.Net.WebResponse response = request.GetResponse();
System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream());
string str = reader.ReadToEnd();

, но этот код выдает ошибку:

Удаленный сервервозвратил ошибку: (401) Unauthorized.

Я знаю пользователя / пароль для авторизации, когда IE спрашивает меня.

Может кто-нибудь помочь мне, как отправить авторизованный запрос?Спасибо!

Ответы [ 3 ]

1 голос
/ 11 ноября 2010
webClient.Credentials = new NetworkCredential("Login", "Password");
0 голосов
/ 11 ноября 2010

похоже, что сервер использует встроенную безопасность Windows?

попробуйте что-то вроде этого

WebRequest req = WebRequest.Create(tokenUri);
req.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested;
req.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
0 голосов
/ 11 ноября 2010

Сервер, похоже, использует аутентификацию Windows - хотя я только догадываюсь.Если это так, добавьте эту строку:

   request.Credentials = CredentialCache.DefaultCredentials;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...