Обмен данными контекста приложения ASP.Net - PullRequest
1 голос
/ 08 сентября 2011

У меня есть несколько веб-сайтов, которые используют HTTPModule (обернутый в dll) для аутентификации пользователей и сохранения объекта аутентификации в кэше приложения в течение ~ 10 часов.Затем я установил на компьютере пользователя файл cookie, содержащий ключ кеша.

Сейчас я ищу способ, позволяющий администраторам очищать определенный объект кеша для всех веб-сайтов для любого данного пользователя (эффективно выводя их из системы).заставляя их автоматически входить в систему (через проверку подлинности Windows) в следующий раз, когда они посещают любой из сайтов.

Я планировал создать единый веб-сайт администрирования с возможностью сброса входов в систему, но я не могу изменитькэш приложений для других сайтов по очевидным причинам безопасности.

Есть ли способ передать сигнал тем сайтам, которые используют модуль аутентификации, чтобы они могли очистить свой собственный кэш приложений?

Примечание:Я прочитал о memcached, но я хотел бы избежать решения, которое не является «Стандартным ASP.NET», если это возможно.

Ответы [ 2 ]

1 голос
/ 08 сентября 2011

Вот две идеи:

  • Если они находятся на одном сервере, у вас может быть файл, содержащий активные имена входа в файловой системе, к которому могут обращаться все проекты.
  • Добавьте универсальный обработчик для каждого проекта, который сбрасывает логин данного пользователя.Позвоните этому из другого проекта, когда он выйдет там.Вы можете добавить фразу-пароль по соображениям безопасности.

РЕДАКТИРОВАТЬ: Я только что подумал о лучшем решении:

  • Создайте центральный проект "аутентификации"который отслеживает статус входа в систему.Вызовите его с веб-сайтов (например, через общие обработчики, веб-сервис, ...), чтобы выйти из системы или проверить его статус.
0 голосов
/ 13 сентября 2011

Я решил добавить код в существующий модуль HTTP.

Я проверяю пользовательскую строку пользовательского агента, если она существует, очищаю соответствующие записи кэша на основе строки запроса и возвращаю настраиваемый заголовок HTTP в случае успеха.

Единственная дополнительная нагрузка - проверка агента пользователя для каждого запроса, с которым я могу жить.

С этой настройкой теперь я могу использовать объект WebRequest (вводя мою пользовательскую строку пользовательского агента) с моего центрального сайта для отправки сообщений на все сайты, использующие модуль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...