IIS 6 ASP.NET по умолчанию сопоставления обработчиков и виртуальные каталоги
У меня проблема с настройкой сопоставления по умолчанию в IIS 6. Я хочу защитить файлы *.HTML с проверкой подлинности на основе форм ASP.NET. Кажется, проблема связана с использованием виртуальных каталогов для хранения html-файлов. Вот как это делается:
образец дерева каталогов
c:/inetpub/ (nothing in here)
d:/web_files/my_web_apps
d:/web_files/my_web_apps/app1/
d:/web_files/my_web_apps/app2/
d:/web_files/my_web_apps/html_files/
app1 и app2 оба обращаются к одному и тому же каталогу html_files, поэтому html_files устанавливается как виртуальный каталог в веб-приложениях в IIS...
образец дерева веб-каталогов
//app1/html_files/ (points to physical directory: d:/web_files/my_web_apps/html_files/)
//app2/html_files/ (points to physical directory: d:/web_files/my_web_apps/html_files/)
Если я помещаю файл с именем test.html в корень //app1/, а затем добавляю сопоставление по умолчанию в dll asp.net и настраиваю свою безопасность в корневой папке с помощью deny="?", То доступ к test.html работает именно так, как и ожидалось. Если я не авторизован, он переходит на страницу login.aspx, и если я аутентифицирован, то отображается test.html.
Если я помещаю файл test.html в каталог html_files, я получаю совершенно другое поведение. Теперь страница login.aspx загружается, и я вставил некоторый код, чтобы проверить, прошел ли я аутентификацию:
<p>autheticated: <%=User.Identity.IsAuthenticated%></p>
Я подумал, что это скажет false, потому что иначе зачем загружать страницу входа? Нет, он говорит, что правда - поэтому он знает, что я аутентифицирован, но он не даст мне доступ к файлу test.html.
Я потратил несколько часов на это и не смог решить. Я собираюсь потратить немного времени на Google, чтобы увидеть, если я что-то пропустил. Скрещенные пальцы.
1 ответ
Я понял. С большим чтением и большим количеством проб и ошибок. Где-то вдоль линии кто-то преобразовал виртуальные каталоги в приложения в консоли управления IIS6. Я "удалил" приложение из каждой из рассматриваемых директорий, и теперь защита работает так, как она должна.