通过命令行在 IIS 6 中集成身份验证

通过命令行在 IIS 6 中集成身份验证

在部署 ASP.NET 应用程序的新版本时,我们需要将特定页面的身份验证方法设置为“仅集成”。我们可以从 IIS 管理控制台执行此操作,但希望编写一个脚本(批处理或 powershell,无所谓)来进行更改,以确保部署一切顺利。

应用程序中的其余页面将允许不同的身份验证方法,但此特定页面仅允许集成。

在同一个部署中,我们还需要更改所有 401 错误的自定义错误页面的位置,最好也从命令行进行更改。

答案1

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> 是您的网站 ID。

对于 CustomErrors,您需要更新 root/HTTPErrors 字段,它实际上是一个 LIST 项。王大卫有适合此目的的脚本:列表文件

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

对于单个文件,您可以在 /Root/ Path 之后添加它们:

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

答案2

您可以从 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>

或者,您可以查看 IIS 5 和 6 的 System.DirectoryServices API(http://msdn.microsoft.com/en-us/library/system.directoryservices.aspx)或 IIS 7 的 Microsoft.Web.Administration API(http://msdn.microsoft.com/en-us/library/microsoft.web.administration.aspx)。

相关内容