II6 Базовая аутентификация и RouteTable.Routes - PullRequest
0 голосов
/ 23 июля 2011

У меня есть сайт ASP.NET 4.0 WebForms, работающий на экземпляре IIS6 / Server 2003. Сам сайт не разрешает анонимный доступ и использует базовую проверку подлинности IIS, прежде чем пользователь сможет перейти к экрану проверки подлинности с помощью форм. Однако есть два узла сайта ниже уровня сайта, которые являются виртуальными каталогами, которые разрешают анонимный доступ (для запроса статических изображений на других машинах).

Новый запрос потребовал от меня перенаправить эти запросы на другую страницу, изучить запрашиваемый URL-адрес и выполнить другие задачи. Я использую метод MapPageRoute в файле Global.asax, и маршрут очищается через проверку подлинности с помощью форм с параметром web.config <allow users="*" />. Очевидно, что это прекрасно работает локально, но при развертывании на машине IIS6 базовая аутентификация запускается до того, как запрос будет перенаправлен.

Есть ли хороший способ "подделать" или создать узел виртуального каталога в IIS6 и предоставить ему анонимный доступ для выполнения запроса перенаправленного URL?

1 Ответ

0 голосов
/ 27 июля 2011

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

Затем я добавил его только на используемую ~ / [страницу входа]. Поскольку проверка подлинности с помощью форм использовалась, все неаутентифицированные пользователи перенаправляются на страницу входа и получают базовую проверку подлинности. Поскольку запрос перенаправленной страницы должен быть общедоступным, я просто добавил его в качестве исключения в Web.config. Маршрутизированные значения должны соответствовать очень строгим критериям, чтобы их даже выполняла логика страницы, а все остальное возвращается обработчиком как 404.

Очевидно, это означает, что dll asp.net выполняется до базовой безопасности IIS, когда запросы перенаправляются на страницу входа, но в этом случае я думаю, что все в порядке.

...