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

Встроенная проверка подлинности в IIS 6 из командной строки

При развертывании новой версии нашего приложения ASP.NET нам необходимо установить метод аутентификации для конкретной страницы как «Только интегрированный». Мы можем сделать это из консоли управления IIS, но мы хотели бы написать сценарий (пакетный или PowerShell, не имеет значения), который внесет изменения, чтобы все прошло гладко при развертывании.

На остальных страницах приложения будут разрешены различные методы аутентификации, но эта конкретная страница позволит только интегрировать.

В том же развертывании нам также необходимо изменить расположение настраиваемых страниц ошибок для всех ошибок 401, предпочтительно также из командной строки.

AdsUtil.VBS - ваш друг:

adsutil.vbs set  W3SVC/1/root/AuthNTLM true
adsutil.vbs set  W3SVC/1/root/AuthAnonymous false
adsutil.vbs set  W3SVC/1/root/AuthBasic  false
adsutil.vbs set  W3SVC/1/root/AuthPassport false
adsutil.vbs set  W3SVC/1/root/AuthMD5 false

Это то же самое, что:

adsutil.vbs set  W3SVC/1/root/AuthFlags 5

Обратите внимание, что <1> - это идентификатор вашего веб-сайта.

Для CustomErrors вам необходимо обновить поле root / HTTPErrors, которое на самом деле является элементом LIST. Дэвид Ван есть соответствующий сценарий для этого: chglist.vbs

chglist.vbs W3SVC/1/HttpErrors 404 404,*,URL,/CustomErrors/404.asp /COMMIT 

Для отдельных файлов вы можете добавить их после / Root / Path:

adsutil.vbs set W3SVC/1/root/MyFile.txt/AuthFlags 5

Вы можете управлять аутентификацией из файла web.config. Вы бы поместили следующее в свой web.config (из http://msdn.microsoft.com/en-us/library/aa291347(VS.71).aspx):

<system.web>
   <!-- mode=[Windows|Forms|Passport|None] -->
   <authentication mode="Windows" />
</system.web>

В качестве альтернативы вы можете проверить API System.DirectoryServices для IIS 5 и 6 (http://msdn.microsoft.com/en-us/library/system.directoryservices.aspx) или API Microsoft.Web.Administration для IIS 7 (http://msdn.microsoft.com/en-us/library/microsoft.web.administration.aspx).