2012-01-14 4 views
1

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

Я закончил с использованием глобальной CookieContainer и два HttpWebRequests:

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

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

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

ответ

1

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

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

+0

Jon, большое спасибо. Таким образом, режим аутентификации = «формы» не устанавливает веб-сайт ASP.NET для обычной проверки подлинности? Эти два, «Основные» и «формы» - это не одно и то же? –

Смежные вопросы