Если вам необходимо выполнить запрос информации для отправки по определенному 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) Требуется проверка подлинности посредника.»:
Свойство DefaultCredentials представляет системные учетные данные для текущего контекста безопасности, в котором выполняется приложение. Для приложения на стороне клиента это обычно учетные данные Windows (имя пользователя, пароль и домен), относящиеся к пользователю, запустившему приложение (Microsoft MSDN).
Так же вы можете указать свои учетные данные при подключении, для этого необходимо инициализировать новый экземпляр класса «System.Net.NetworkCredential» с тремя заданными параметрами:- userName - Имя пользователя, связанное с учетными данными.
- password - Пароль для имени пользователя, связанный с учетными данными.
- Domain- Домен, связанный с этими учетными данными.
request.Proxy.Credentials = new System.Net.NetworkCredential(@"userName", @"password ", "Domain");Ниже приведен пример отправки интернет-запроса сайту «http://www.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();Результатом выполнения данного примера будет сообщение со статусом выполнения аутентификации.
Комментариев нет:
Отправить комментарий
Большая просьба, не писать в комментариях всякую ерунду не по теме!