Я хочу знать, возможно ли следующее, и независимо от того, есть ли это или нет, получить как можно больше отзывов, чтобы я мог найти способ начать.
Я хочу создать сайт в IIS. На этом сайте я бы хотел иметь 2 привязки:
test1.company.com
test2.company.com
Однако, когда пользователи заходят на сайт, я бы хотел, чтобы test1.company.com использовал проверку подлинности с помощью форм, а test2.company.com - проверку подлинности Windows.
Короче говоря, это то, что я пытаюсь достичь. До сих пор я пробовал следующее:
создание 2 отдельных веб-сайтов (test1.company.com и test2.company.com) и в основных настройках оба веб-сайта указывают на один и тот же физический путь. Однако я считаю, что это не сработает, потому что, когда я изменяю аутентификацию на одном веб-сайте, он также применяет ее к другому и наоборот, поскольку я предполагаю, что они оба используют один и тот же физический путь.
снова создать два отдельных веб-сайта, но вместо этого в основных настройках у обоих веб-сайтов есть собственная папка / физический путь. Однако папки на каждом веб-сайте точно такие же. Это работает, однако сайт будет отредактирован (файлы будут добавлены / изменены в корневую папку), поэтому все, что добавлено / изменено на веб-сайте, должно быть сделано точно так же на другом, если это имеет смысл. Это создает неудобства, и я не хочу идти по этому маршруту.
В конце концов, я просто хотел получить обратную связь о том, можно ли достичь того, чего я хочу. Если понадобятся какие-то подробности, я могу объяснить. Любая помощь будет принята с благодарностью.
привязка iis аутентификации
Вы можете выбрать вариант 1, когда два отдельных сайта указывают на один и тот же физический путь. Когда вы устанавливаете аутентификацию с помощью форм для первого сайта, вы получаете web.config с:
<configuration>
<system.web>
<authentication mode="Forms" />
</system.web>
</configuration>
Если вы выберете аутентификацию Windows на втором сайте, вы получите:
<configuration>
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</configuration>
Теперь у вас есть конфликт в вашем единственном файле web.config. Чтобы решить эту проблему, переместите оба узла из файла web.config в глобальный файл конфигурации IIS.
Открыто:
C:\Windows\System32\inetsrv\Config\applicationHost.config
в текстовом редакторе от имени администратора с повышенными привилегиями и внизу добавьте что-то вроде этого:
<location path="test1.company.com">
<system.web>
<authentication mode="Forms" />
</system.web>
</location>
<location path="test2.company.com">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Имя в узлах местоположения такое же, как вы видите для сайта в диспетчере IIS. Возможно, у вас уже есть другие узлы местоположения в applicationHost.config
, в противном случае поместите их прямо под configuration
узел.
Любая другая конфигурация, которая используется двумя сайтами, может оставаться в файле web.config.
Путь в узле местоположения не ограничивается именем сайта, он также может содержать каталог или файл для применения настроек к определенной части сайта.