Если вам необходимо выполнить запрос информации для отправки по определенному URI, вам необходимо воспользоваться классом «WebRequest». При выполнении запроса через «WebRequest» используются настройки прокси, прописанные в Internet Explorer. Если прокси-сервер использует Active Directory-авторизацию, то необходимо указать в запросе использование разрешений пользователя по умолчанию. Для этого необходимо присвоить свойству «Proxy.Credentials», системные учетные данные приложения из свойства «System.Net.CredentialCache.DefaultCredentials». Код инициализации представлен ниже.
System.Net.WebRequest request =
System.Net.WebRequest.Create("http://адрес сайта");
//Указываем системные учетные данные приложения.
request.Credentials =
System.Net.CredentialCache.DefaultCredentials;
//Указываем сетевые учетные данные текущего контекста безопасности.
request.Proxy.Credentials =
System.Net.CredentialCache.DefaultCredentials;
Если учетные данные не указаны, вы получите сообщение об ошибке «Удаленный сервер возвратил ошибку: (407) Требуется проверка подлинности посредника.»:
Так же вы можете указать свои учетные данные при подключении, для этого необходимо инициализировать новый экземпляр класса «System.Net.NetworkCredential» с тремя заданными параметрами:
- userName — Имя пользователя, связанное с учетными данными.
- password — Пароль для имени пользователя, связанный с учетными данными.
- Domain- Домен, связанный с этими учетными данными.
request.Proxy.Credentials = new System.Net.NetworkCredential(@"userName", @"password ", "Domain");
Ниже приведен пример отправки интернет-запроса сайту «http://csharpcoderr.com/» и получение значения true, если и клиент, и сервер прошли проверку подлинности; в противном случае — false.
System.Net.WebRequest request =
System.Net.WebRequest.Create("http://адрес сайта/");
//Указываем системные учетные данные приложения.
request.Credentials =
System.Net.CredentialCache.DefaultCredentials;
//Указываем сетевые учетные данные текущего контекста безопасности.
request.Proxy.Credentials =
System.Net.CredentialCache.DefaultCredentials;
//Получаем ответ на интернет-запрос.
System.Net.WebResponse response = request.GetResponse();
//Выводим полученный ответ от сервера в сообщении.
MessageBox.Show(
//Получаем значение true, если и клиент, и сервер прошли
//проверку подлинности; в противном случае — false.
(response.IsMutuallyAuthenticated == true) ?
"Аутентификация не выполнена" :
"Аутентификация выполнена");
//Если объект ответа больше не нужен,
//его следует закрыть методом Close().
response.Close();
Результатом выполнения данного примера будет сообщение со статусом выполнения аутентификации.
0.00 (0%) 0 votes




