При развертывании новой версии нашего приложения 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).