IIS - один сайт, две привязки, две аутентификации?
Я хочу знать, возможно ли выполнить следующее и есть ли это, получить как можно больше отзывов, чтобы я мог найти способ начать.
Я хочу создать сайт в IIS. На этом сайте я бы хотел иметь 2 привязки:
test1.company.com
test2.company.com
Однако когда пользователи заходят на сайт, я бы хотел, чтобы test1.company.com использовал проверку подлинности с помощью форм, а test2.company.com - проверку подлинности Windows.
В двух словах, это то, что я пытаюсь достичь. То, что я пробовал до сих пор:
создание 2 отдельных веб-сайтов (test1.company.com и test2.company.com) и в основных настройках оба веб-сайта указывают на один и тот же физический путь. Тем не менее, я считаю, что это не сработает, потому что, когда я изменяю аутентификацию на одном веб-сайте, она также применяет ее и к другому, и наоборот, так как я предполагаю, что они оба используют один и тот же физический путь.
снова создайте 2 отдельных веб-сайта, но вместо этого в базовых настройках оба веб-сайта имеют свою собственную папку / физический путь. Тем не менее, папки на каждом сайте абсолютно одинаковы. Это работает, однако сайт будет отредактирован (файлы будут добавлены / изменены в корневую папку), поэтому все, что будет добавлено / изменено на веб-сайте, должно быть точно так же сделано с другой, если это имеет смысл. Это создает неудобства и не хотел бы идти по этому пути.
Так что, в конце концов, просто хотел получить некоторую обратную связь, если то, что я хочу, может быть достигнуто. Если понадобятся какие-либо подробности, я могу объяснить. Любая помощь будет принята с благодарностью.
аутентификация является обязательной
1 ответ
Вы можете выбрать вариант 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.
Путь в узле местоположения не ограничивается именем сайта, он также может содержать каталог или файл для применения настроек к определенной части сайта.