Как IIS7 обрабатывает модуль авторизации? Объем памяти? - PullRequest
1 голос
/ 08 января 2011

Как те, кто работал над таким проектом, вы, вероятно, знаете этот сайт:

Разработка модуля с использованием .NET

В этой статье Майк Володарский создал очень хороший пост о том, как создать собственное расширение для аутентификации безопасности для IIS7.

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

Пока это в принципе работает нормально.

Вызов веб-службы занимает некоторое время, и каждый запрос, сайт, ресурс (изображение, таблица стилей, файл javascript и т. Д.) Заставляют IIS7 вызывать модуль и снова аутентифицироваться.

Я не знаю, как IIS7 обрабатывает этот модуль, поэтому я решил создать токен безопасности на основе таблиц sql с временем жизни 10 минут. Поэтому теперь мой код проверяет, доступен ли этот токен, и предоставляет ли он доступ, или, если нет, вызывает веб-службу для повторной аутентификации.

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

Теперь вот моя проблема / вопрос:

Кто-нибудь знает, останется ли этот модуль в памяти каким-либо образом, чтобы я мог сохранить токен в памяти - область пула приложений? Идея состоит в том, чтобы хранить токены в памяти во время работы приложения. Но я не могу найти какую-либо информацию, которая бы помогла мне узнать, как модуль обрабатывается в IIS7 и является ли моя идея решением проблемы.

1 Ответ

1 голос
/ 08 января 2011

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

Предполагая (основываясь на вашем сообщении), что вы принимаете имя пользователя и пароль человека через Интернет(якобы из веб-формы) вы должны использовать провайдера проверки подлинности с помощью форм в ASP.NET, а затем внедрить провайдера customMembership для проверки фактических кредитов.Затем поставщик Forms Atuh может обрабатывать поддержку маркера авторизации между вашим приложением и браузером пользователя.

...