Аутентификация в .NET Web API с использованием MVC FormsAuthentication
У нас есть одностраничное приложение, использующее инфраструктуру AngularJS, которое должно взаимодействовать с API, реализованным в .NET Web API в другом домене.
Проблема
API реализован в .NET Web API. Для аутентификации пользователя для доступа к нашему API мы внедрили шаблон одностраничного приложения MVC. Это использует FormsAuthentication для предоставления доступа к API.
Мы использовали Fiddler для отладки. Когда мы посетили контроллер API, который требовал аутентификацию непосредственно в браузере, мы могли подтвердить, что пользователь действительно прошел аутентификацию. Когда мы делали запрос XMLHttpRequest, как и предполагалось, в заголовках не было отправлено куки аутентификации.
Мы хотели бы использовать FormsAuthentication для доступа к .NET Web API с надеждой через XMLHttpRequests.
Одним из предложенных решений было разделение сеансов между .NET Web API и MVC. Как мы можем легко поддерживать состояние между .NET Web API и частью проекта MVC?
Мы знаем, что это не очень приятно, но нам нужно быстрое решение этой проблемы.
PS! FormsAuthentication работает с контроллерами .NET Web API с помощью атрибута [Authorize]. Это только то, что контроллеры не могут быть приняты с XMLHttpRequests.
Снимок экрана fiddler при использовании XMLHttpRequest
Снимок экрана скрипача, когда запрос выполняется прямо в браузере
Снимок экрана контроллера аутентификации для тестирования