Назад | Перейти на главную страницу

Наследование модуля IIS

Я пытаюсь настроить сайт IIS, который имеет как публичную, так и частную стороны. Публичная сторона использует анонимную аутентификацию, а приватная сторона использует пользовательский модуль аутентификации, который я предоставляю, вот обзор структуры (имена пулов приложений находятся в []):

+SITE ROOT [default_app_pool]
|-public [default_app_pool] (folder converted to application)
|  -- folderA
|  -- folderB
|  -- folderC
|  -- publicApp [publicApp]
|-private [default_app_pool] (folder converted to application)
|  -- bin
|     >> custom_auth_module.dll
|  -- app1 [app1]
|  -- app2 [app2]
|  -- app3 [app3]

В этом сценарии папка private имеет web.config который предоставляет настраиваемый модуль аутентификации (а также некоторые другие настройки поставщика членства)

Структура и пулы приложений просты в настройке, но у меня возникают проблемы с аутентификацией. В идеале app1 ... app3 должно просто наследовать аутентификацию из родительского каталога (частного). Однако это работает, только если путь к приложению (в основных настройках) /private/{appN}. Это не идеально по ряду причин:

  1. URL-адреса, которые все в настоящее время знают, должны измениться (чтобы включить /private/)
  2. Это раскрывает некоторую базовую структуру папок, которая не идеальна (например, почему пользователь должен знать, что частный каталог вообще существует ...)

Если я установлю путь к приложению (/), то пользовательский модуль аутентификации не будет унаследован. Если я попытаюсь создать виртуальную папку на корневом уровне, которая указывает на / appN (таким образом, сохраняя исходный URL-адрес), приложение не загружается должным образом (похоже, что оно использует неправильный пул приложений - не уверен на 100%. )

Итак, вкратце, есть ли способ заставить IIS выполнять наследование на основе структуры папок того, что находится на диске (не обязательно того, что структурировано в веб-пути?). В качестве альтернативы, есть ли способ дать приложению IIS «псевдоним» (например, это в /private/appN, но он также будет прослушивать хиты в /appN).

Спасибо за помощь, все советы приветствуются.