Как те, кто работал над таким проектом, вы, вероятно, знаете этот сайт:
Разработка модуля с использованием .NET
В этой статье Майк Володарский создал очень хороший пост о том, как создать собственное расширение для аутентификации безопасности для IIS7.
Я взял это и изменил в соответствии со своими потребностями. Я извлекаю базовые учетные данные и вызываю внешнюю веб-службу для проверки подлинности пользователя из другого домена активного каталога.
Пока это в принципе работает нормально.
Вызов веб-службы занимает некоторое время, и каждый запрос, сайт, ресурс (изображение, таблица стилей, файл javascript и т. Д.) Заставляют IIS7 вызывать модуль и снова аутентифицироваться.
Я не знаю, как IIS7 обрабатывает этот модуль, поэтому я решил создать токен безопасности на основе таблиц sql с временем жизни 10 минут. Поэтому теперь мой код проверяет, доступен ли этот токен, и предоставляет ли он доступ, или, если нет, вызывает веб-службу для повторной аутентификации.
Я разработал все, и это работает хорошо. На производстве я столкнулся с худшими тайм-аутами и обнаружил, что проблема в моем sql-соединении. Пул соединений перегружен. Я исправил это с помощью плохого обходного пути, чтобы установить размер пула очень большим числом.
Теперь вот моя проблема / вопрос:
Кто-нибудь знает, останется ли этот модуль в памяти каким-либо образом, чтобы я мог сохранить токен в памяти - область пула приложений? Идея состоит в том, чтобы хранить токены в памяти во время работы приложения. Но я не могу найти какую-либо информацию, которая бы помогла мне узнать, как модуль обрабатывается в IIS7 и является ли моя идея решением проблемы.