IIS - один сайт, две привязки, две аутентификации?

Я хочу знать, возможно ли выполнить следующее и есть ли это, получить как можно больше отзывов, чтобы я мог найти способ начать.

Я хочу создать сайт в IIS. На этом сайте я бы хотел иметь 2 привязки:

test1.company.com
test2.company.com

Однако когда пользователи заходят на сайт, я бы хотел, чтобы test1.company.com использовал проверку подлинности с помощью форм, а test2.company.com - проверку подлинности Windows.

В двух словах, это то, что я пытаюсь достичь. То, что я пробовал до сих пор:

  1. создание 2 отдельных веб-сайтов (test1.company.com и test2.company.com) и в основных настройках оба веб-сайта указывают на один и тот же физический путь. Тем не менее, я считаю, что это не сработает, потому что, когда я изменяю аутентификацию на одном веб-сайте, она также применяет ее и к другому, и наоборот, так как я предполагаю, что они оба используют один и тот же физический путь.

  2. снова создайте 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.

Путь в узле местоположения не ограничивается именем сайта, он также может содержать каталог или файл для применения настроек к определенной части сайта.

Другие вопросы по тегам