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

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. снова создать два отдельных веб-сайта, но вместо этого в основных настройках у обоих веб-сайтов есть собственная папка / физический путь. Однако папки на каждом веб-сайте точно такие же. Это работает, однако сайт будет отредактирован (файлы будут добавлены / изменены в корневую папку), поэтому все, что добавлено / изменено на веб-сайте, должно быть сделано точно так же на другом, если это имеет смысл. Это создает неудобства, и я не хочу идти по этому маршруту.

В конце концов, я просто хотел получить обратную связь о том, можно ли достичь того, чего я хочу. Если понадобятся какие-то подробности, я могу объяснить. Любая помощь будет принята с благодарностью.

привязка 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.

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