Когда следует использовать HttpWebRequest.Credentials - PullRequest
1 голос
/ 14 января 2012

Я попытался выполнить POST с использованием экземпляра HttpWebRequest для веб-URL, который требует аутентификации (стандартный метод действий ASP.NET MV3 [Authorize] со встроенной системой членства), но с предоставлением входа иpassowrd, как NetworkCredentials в HttpWebRequest, не справился с задачей.

В итоге я использовал глобальный CookieContainer и два HttpWebRequests:

  1. Установить запрос CookieContainer до globalCookieContainer.
  2. POST имя пользователя и пароль для входа в URL.(после этого шага контейнер все еще сообщает, что количество файлов cookie равно 0).
  3. Создайте еще один экземпляр HttpWebRequest и установите globalCookieContainer для запроса CoockieContainer.
  4. POST к окончательному URL, который требует аутентификации.По какой-то причине второй объект запроса на этот раз предоставляет файлы cookie как часть запроса и проходит через него.

Вся «магия» управления файлами cookie нигде не раскрыта (я действительно пыталсяискать вокруг).

Мы рассмотрели этот сценарий.Но в каких случаях следует использовать HttpWebRequest.Credentials? 1030 *

1 Ответ

1 голос
/ 14 января 2012

HttpWebRequest.Credentials предназначен для использования, когда аутентификация выполняется по одной из схем в перечислении AuthenticationSchemes. Среди прочего, сюда входят аутентификация Basic и Digest HTTP, NTLM и Kerberos.

Тем не менее, вы можете создать свои собственные схемы аутентификации, взяв из NetworkCredential на стороне клиента и внедрив IAuthenticationModule на стороне сервера.

...