Статические файлы и аутентификация в ASP.net - PullRequest
2 голосов
/ 09 марта 2009

Скажем, у меня есть виртуальная папка / topFolder / в IIS7, и в этой папке может быть любой файл, который может быть отображен в браузере (xml, html, swf, doc и т. Д. - обычно «неуправляемые» ресурсы с точки зрения IIS ). Прежде чем дать разрешение на открытие любого файла ниже папки, мне нужно проверить некоторые переменные сеанса, чтобы проверить, есть ли у пользователя «лицензия» для данной подпапки и файла.

Я пытался реализовать модуль с интерфейсами IHttpModule и IReadOnlySessionState, но Session всегда имеет значение null в событии AcquireRequestState, когда файл "статический" и не управляется IIS (например, aspx, ashx и т. Д.).

Если я использую пользовательский HttpHandler, я получаю сеанс, но затем мне также необходимо реализовать способ отправки содержимого в ответ. Изменить: так как пользователь не загружает файл, я просто хочу, чтобы IIS обслуживал файл так же, как это происходит с его StaticFileModule. Обработчик / модуль действительно должен быть StaticFileModuleWithAuthorizationHook ...

Так что я действительно хочу сделать следующее: 1. Для запроса / topFolder / *: проверьте сессию, лицензии и т. Д. а) Если все в порядке, продолжайте показ файла б) Если не в порядке, прервите запрос или просто отправьте ЗАПРЕЩЕНО в ответ.

Надеюсь, кто-то может помочь.

1 Ответ

1 голос
/ 09 марта 2009

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

В этой статье (внизу) показан пример того, как это сделать.

...