У меня есть существующий веб-сайт asp.net mvc, который использует базовую аутентификацию форм. На сайте есть страница входа в систему, которая отправляет сообщение обратно в действие входа в систему, которое регистрирует пользователя через FormsAuthentication.SetAuthCookie (). Я ищу добавить API на сайт, как область mvc2, где пользователи будут проходить аутентификацию на основе токена, переданного в качестве заголовка http. Эта область будет состоять только из действий json, поэтому перенаправление пользователя на страницу входа не имеет смысла. Вместо этого я хочу, чтобы пользователи просто передавали токен вместе с каждым запросом. Этот токен сопоставляется с каждой учетной записью пользователя, и пользователь будет аутентифицироваться автоматически.
Я борюсь с тем, где поставить эту логику. На данный момент наилучшим выбором, по-видимому, является добавление логики поиска заголовка и аутентификации в Global.asax в методе Application_AuthenticateRequest. Я хочу избежать необходимости перенаправлять пользователя после вызова FormsAuthentication.SetAuthCookie (), хотя. Я хочу, чтобы действие при входе было прозрачным для них.
Неправильно ли я подхожу к этому?
В качестве примечания: запрос имени пользователя / пароля для запросов API невозможен, поскольку на сайте есть несколько пользователей. Некоторые присоединились с использованием OpenID, а остальные с именем пользователя / паролем.