Я создаю веб-сайт MVC, и я хочу смешать аутентификацию форм (встроенную аутентификацию) с аутентификацией Twitter на моем сайте (в конечном итоге он также будет иметь аутентификацию Facebook / Google).
Подход, который я использую, заключается в следующем:
- Я позволил логике создавать пользователей и проверять пользователей / пароли с помощью проверки подлинности с помощью форм по мере их поступления из коробки.
- Я создал новую таблицу пользователей, в которой я сохраняю имя пользователя, идентификатор пользователя на моем сайте и службу аутентификации этого пользователя («Формы», «Twitter», «Facebook»).
- Когда пользователь входит в систему с использованием любого из методов аутентификации, я создаю стандартный файл cookie аутентификации, добавляя идентификатор пользователя и службу аутентификации в UserData файла cookie.
Теперь я хочу, чтобы пользователь мог оставаться в системе после того, как он закроет браузер, независимо от того, какую службу пользователь использовал для входа. Под этим я подразумеваю, что если пользователь снова откроет сайт, он выиграет ». не нужно снова авторизовать Twitter на сайте.
Прямо сейчас, с подходом куки, MVC загружает информацию пользователя из куки, и пользователь, кажется, вошел, когда он входит на сайт, именно то, что я хочу.
Проблема в том, что если пользователь аннулирует доступ к моему сайту, куки-файл аутентификации пользователя все равно будет действительным, и пользователь будет отображаться как авторизованный, даже если авторизация для моего сайта была отменена.
У меня вопрос, есть ли способ подтвердить авторизацию в тот момент, когда MVC загружает информацию из куки-файла авторизации? Я знаю, что могу использовать пользовательский атрибут AuthorizeAttribute и проверить его в методе AuthorizeCore, но он будет вызываться только тогда, когда пользователь обращается к ActionMethod, требующему аутентификации.
Спасибо за вашу помощь.