У меня есть сайт asp.net 2.0 (.net3.5) на II6. Это настройка для проверки подлинности форм. Я установил «aspnet_isapi.dll» в качестве записи в «Таблице приложений подстановочных знаков» в IIS, чтобы все запросы проходили через asp.net. В web.config у меня есть запретить все анонимный пользователь с помощью следующей настройки:Как передать аутентификацию форм ASP.NET, чтобы не проверять некоторые расширения файлов?
<system.web>
<authorization>
<deny users="?"/>
</authorization>
...
</system.web>
Я хотел бы сделать это так, что файлы с определенными расширениями (в частности файла изображения, такие как .gif, .jpg) не требуется для аутентификации. Эти файлы расположены в разных папках, поэтому просто разрешение на использование папки с изображениями не будет работать.
Я изменил свой собственный HttpModule аутентификации форм, чтобы игнорировать все такие запросы и просто вернуться. Но поскольку он игнорирует эти файлы и не создает Принципала, запрос остается анонимным и получает ошибку проверки подлинности.
В идеале было бы здорово, если я могу сделать какой-либо один из следующих вариантов, но это не похоже, что это то, что может быть сделано:
1) позволяют исключить некоторые расширения файлов, когда настройка отображения подстановочные в ИИС.
2) В моей собственной форме проверки подлинности HttpModule я могу как-то сказать asp.net прекратить обработку asp.net pipleline для этого файла или просто остановить аутентификацию для него.
3) Дайте нам возможность использовать групповые символы в атрибуте путь к расположению тега в web.config, таких как:
<location path="*.jpg>
<authorization>
<allow users="?"/>
</authorization`>
</system.web`>
Единственное решение, которое я могу думать о том, чтобы удалить отображение подстановки в IIS и добавить Картинка Application Extension Mapping индивидуально, поэтому не все запросы обрабатываются asp.net. Но тогда я рискую потерять определенные типы файлов, не говоря уже о том, что было бы утомительно добавлять его отдельно для всех известных типов файлов (за вычетом файлов изображений)
Любые идеи?
Спасибо за ответ Arty. Но если запрос не прошел проверку подлинности, он никогда не достигнет httphandlers. Поэтому я не знаю, как это будет работать. – Buma