Проверка авторизации пользователя в Twitter при загрузке файла cookie авторизации

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

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

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

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

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

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


person willvv    schedule 25.09.2010    source источник


Ответы (1)


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

person Rohan Singh    schedule 25.09.2010