У меня есть сайт, использующий как mvc, так и web-api-контроллеры и идентификатор aspnet. Я использовал шаблон VS2013 SPA с двумя контроллерами mvc и web api в качестве отправной точки.
Вот мой сценарий:
Пользователь регистрируется с использованием контроллера mvc и возвращает файл cookie с авторизацией.
Следующая страница обслуживается с использованием контроллера mvc, прошедшего проверку подлинности. Эта страница использует нокаут и делает ajax пост-вызов контроллеру веб-api, который аутентифицируется нажатием кнопки (Save). Для контроллера web api требуется заголовок проверки подлинности с помощью Bearer --token -.
Мой вопрос в том, как другие обрабатывают эти "два" подхода к аутентификации. Я создал конечную точку на контроллере mvc, которая аутентифицирована и возвращает токен-носитель на основе текущего принципала. Я могу использовать этот токен для успешной публикации в веб-API конечной точке.
Логика javascript, которую я создаю, немного... запутанная. Он проверяет, находится ли токен доступа в хранилище сеансов, если это делает вызов ajax. Если нет, вызовите конечную точку доступа token, а затем вызовите конечную точку web api (используя кучу обратных вызовов для обработки обещаний Ajax, fail, ect).
Как другие обрабатывали сценарий, в котором вам нужны как cookie файл cookie, так и маркер-носитель, поэтому каждая страница "mvc" аутентифицирована, а конечная точка веб-api, вызываемая страницами, проходит аутентификацию. Что вы будете делать, если токен-носитель истечет до истечения срока действия файла cookie.
Сообщите мне, если я не понял или вам нужна дополнительная информация.
Изменить
Я наткнулся на это, Совместное использование токенов-носителей и проверки файлов cookie Он по-прежнему не отвечает на мой вопрос, поскольку у меня он уже настроен, поэтому mvc принимает cookie auth, а web api принимает только токен. Я чувствую, что это должна быть проблема, которая уже решена, но, возможно, я ошибаюсь.