Проверка подлинности с помощью форм в веб-API ASP.NET

Майк Уассон

Для проверки подлинности на основе форм используется HTML-форма для отправки учетных данных пользователя на сервер. Это не интернет-стандарт. Проверка подлинности с помощью форм подходит только для веб-API, которые вызываются из веб-приложения, чтобы пользователь смог взаимодействовать с HTML-формой.

Преимущества Недостатки
  • Простота реализации: встроенная ASP.NET.
  • Использует ASP.NET поставщика членства, что упрощает управление учетными записями пользователей.
  • Не является стандартным механизмом проверки подлинности HTTP; использует файлы cookie HTTP вместо стандартного заголовка авторизации; некоторые пользователи отключают файлы cookie.
  • Трудно использовать из клиентов, не являющихся клиентами. Для входа требуется браузер.
  • Учетные данные пользователя отправляются в запросе в виде открытого текста.
  • Уязвимы для межсайтовых подделки запросов (CSRF); требуются меры по борьбе с CSRF.

Вкратце проверка подлинности с помощью форм в ASP.NET работает следующим образом:

  1. Клиент запрашивает ресурс, требующий проверки подлинности.
  2. Если пользователь не прошел проверку подлинности, сервер возвращает HTTP 302 (найдено) и перенаправляется на страницу входа.
  3. Пользователь вводит учетные данные и отправляет форму.
  4. Сервер возвращает еще один HTTP 302, который перенаправляет обратно на исходный URI. Этот ответ содержит файл cookie проверки подлинности.
  5. Клиент снова запрашивает ресурс. Запрос включает файл cookie проверки подлинности, поэтому сервер предоставляет запрос.

Иллюстрация того, как работает проверка подлинности на основе форм в СЕТИ точки S P

Дополнительные сведения см. в статье Общие сведения о проверке подлинности с помощью форм.

Использование проверки подлинности на основе форм с веб-API

Чтобы создать приложение, использующее проверку подлинности на основе форм, выберите шаблон "Интернет-приложение" в мастере проектов MVC 4. Этот шаблон создает контроллеры MVC для управления учетными записями. Вы также можете использовать шаблон "Одностраничное приложение", доступный в обновлении ASP.NET осенью 2012 г.

В контроллерах веб-API можно ограничить доступ с помощью атрибута [Authorize] , как описано в разделе Использование атрибута [Authorize].

Проверка подлинности на основе форм использует файл cookie сеанса для проверки подлинности запросов. Браузеры автоматически отправляют все соответствующие файлы cookie на целевой веб-сайт. Эта функция делает проверку подлинности на основе форм потенциально уязвимой для атак с подделкой межсайтовых запросов (CSRF) см. статью Предотвращение атак csRF.

Проверка подлинности с помощью форм не шифрует учетные данные пользователя. Таким образом, проверка подлинности на основе форм не является безопасной, если не используется с SSL. См . раздел Работа с SSL в веб-API.