Обычной аутентификации в asp.net избегают, если runAllManagedModulesForAllRequests = "True" - PullRequest
1 голос
/ 18 декабря 2010

У нас есть один модуль, который выполняет внутреннее перенаправление на реальные страницы ASPX.Он также отвечает за непосредственное обслуживание вывода кэшированных / сжатых HTML / txt / cs / js клиенту.

Вот как выглядит web.config для раздела модулей:

<modules runAllManagedModulesForAllRequests="True">      
  <remove name="RequestInterceptor" />
  <add type="Lib.Request.RequestInterceptor" name="RequestInterceptor" />
  <remove name="Session" />
  <add type="System.Web.SessionState.SessionStateModule" name="Session" />
</modules> 

Basicпроверка подлинности включена на IIS7.Когда первый посетитель заходит на сайт, появляется всплывающее окно с логином, и он проходит проверку подлинности, а затем страницы, которые он посещает, кэшируются.При следующем посещении аутентификации всплывающее окно не отображается, если только он не посещает страницу, которая не была посещена предыдущим посетителем (страница, которая не была кэширована).По истечении срока действия кэша аутентификация снова работает, пока содержимое страницы не будет кэшировано и т. Д.

Существует ли способ принудительной аутентификации для каждого посетителя?Может быть, нам нужно добавить модуль базовой аутентификации в раздел модуля web.config (как это сделать)?

Заранее спасибо.Приветствия

Ответы [ 2 ]

2 голосов
/ 26 апреля 2012

При поиске ответа на связанный вопрос я наткнулся на этот пост:

Не используйте runAllManagedModulesForAllRequests = "true" при получении маршрутизации MVC для работы

Кажется, это общий совет сделать ваши модули разделом вашего web.config сказать. В Факт, что это довольно радикальная вещь, чтобы сделать, чтобы решить проблему маршрутизации и имеет глобальные последствия, которые могут привести к ошибкам. ... это высоко Рекомендуемое исправление может вызвать другие проблемы. Эти проблемы приходят в форма запуска всех ваших зарегистрированных модулей HTTP при каждом запросе, не только управляемые запросы (например, ASPX). Это означает, что модули будут работать на ever .jpg .gif .css .html .pdf и т. д.

И, хотя я не использую MVC в моей REST-службе WCF, это исправило мою (другую) проблему, и этот совет против неуместного или чрезмерного использования runAllManagedModulesForAllRequests может быть оправдан.

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

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

...