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

Майк Уосон

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

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

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

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

Иллюстрация того, как работает аутентификация форм в A S P точка Net

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

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

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

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

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

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