Я бы не использовал куки в REST API.FormsAuthentication - это метод на основе файлов cookie.Вместо этого вызывающий должен предоставлять учетные данные для аутентификации при каждом запросе в заголовке или в качестве параметра запроса.
Например, вы можете использовать обычную аутентификацию для передачи имени пользователя и пароля или добавить пользовательский заголовок аутентификации с некоторымизашифрованный токен доступа (который не очень RESTful).Вы также можете реализовать OAuth, где запрашивающий будет предоставлять токен доступа при каждом запросе.
Я бы написал пользовательский AuthorizeAttribute
для выполнения аутентификации в вашем коде, что дает вам большой контроль.Кроме того, вы можете использовать базовый класс контроллера и переопределить метод OnAuthorization
.
API не должен предоставлять запрос пароля: в веб-приложении неавторизованный запрос обычно перенаправляет пользователя на страницу входа.В API запрос просто вернет код ошибки.Теперь задача клиентского приложения состоит в том, чтобы бросить вызов пользователю через диалоговое окно, если это применимо.В мобильном приложении вы можете захотеть показать диалог.В веб-приложении с OAuth вы, вероятно, захотите перенаправить на сервер аутентификации.
Если вы хотите протестировать REST API, я предлагаю вам использовать REST Console для Google Chrome и Curl .Первый проще для начинающих и поставляется с приятным графическим интерфейсом, а cURL дает вам еще большую точность и множество протоколов.
РЕДАКТИРОВАТЬ
Несколько педантичное примечание: некоторые APIдаже те из довольно крупных провайдеров, как Twitter, время от времени возвращают 401
коды состояния, как правило, пропуская (обязательный) заголовок WWW-Authenticate
, потому что он не собирался оспаривать клиента.