Подтвердите авторизацию пользователя в Твиттере при загрузке куки авторизации - PullRequest
0 голосов
/ 25 сентября 2010

Я создаю веб-сайт MVC, и я хочу смешать аутентификацию форм (встроенную аутентификацию) с аутентификацией Twitter на моем сайте (в конечном итоге он также будет иметь аутентификацию Facebook / Google).

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

Теперь я хочу, чтобы пользователь мог оставаться в системе после того, как он закроет браузер, независимо от того, какую службу пользователь использовал для входа. Под этим я подразумеваю, что если пользователь снова откроет сайт, он выиграет ». не нужно снова авторизовать Twitter на сайте. Прямо сейчас, с подходом куки, MVC загружает информацию пользователя из куки, и пользователь, кажется, вошел, когда он входит на сайт, именно то, что я хочу.

Проблема в том, что если пользователь аннулирует доступ к моему сайту, куки-файл аутентификации пользователя все равно будет действительным, и пользователь будет отображаться как авторизованный, даже если авторизация для моего сайта была отменена.

У меня вопрос, есть ли способ подтвердить авторизацию в тот момент, когда MVC загружает информацию из куки-файла авторизации? Я знаю, что могу использовать пользовательский атрибут AuthorizeAttribute и проверить его в методе AuthorizeCore, но он будет вызываться только тогда, когда пользователь обращается к ActionMethod, требующему аутентификации.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 25 сентября 2010

Напишите HTTP-модуль , который реализует IHttpModule и обрабатывает событие HttpApplication.AuthorizeRequest.

...