在IIS 6中的应用程序级别设置nAuthenticationProviders

在IIS 6中的应用程序级别设置nAuthenticationProviders,iis,Iis,我在IIS中具有以下结构 Internet Information Services (local computer) Web Sites Default Web Site MyApplication MyApplication是IIS中的一个应用程序 未在默认网站上设置集成Windows身份验证。 但是,我想在MyApplication上设置集成Windows身份验证。(这是一个内部网应用程序) 这可以通过GUI完成:右键单击默认网站,然后选择属性。选择目录安

我在IIS中具有以下结构

Internet Information Services  
 (local computer)
  Web Sites  
   Default Web Site  
    MyApplication
MyApplication
是IIS中的一个应用程序

未在
默认网站上设置集成Windows身份验证。
但是,我想在
MyApplication
上设置集成Windows身份验证。(这是一个内部网应用程序)

这可以通过GUI完成:右键单击
默认网站
,然后选择
属性
。选择
目录安全性
选项卡,然后单击匿名访问和身份验证控件上的
编辑

我想将其包含在安装脚本中。我还有其他设置命令,使用的是
adsutil.vbs
,但我正在努力设置集成的windows身份验证

运行:

cscript//nologo c:\Inetpub\AdminScripts\adsutil.vbs GET/W3SVC/1/nAuthenticationProviders

返回

NTAuthenticationProviders       : (STRING) "NTLM"
不过,我还是能跑

cscript//nologo c:\Inetpub\AdminScripts\adsutil.vbs GET/W3SVC/1/ROOT/MyApplication/nAuthenticationProviders

但这又回来了

Error Trying To GET the property: (Get Method Failed)
NTAuthenticationProviders (This property is probably not allowed at this node)

无法在应用程序级别上设置
nAuthenticationProviders
Metabase属性吗?

控制IIS目录安全性->身份验证方法对话框上经过身份验证的访问属性值的Metabase属性实际上称为
AuthFlags

该值是一个标志,并记录在此处:

要将此值设置为集成Windows身份验证(
AuthNTLM
),请使用以下命令(注意,因为此命令在默认网站IISNumber上运行:1)-

adsutil.vbs集/W3SVC/1/ROOT/MyApplication/AuthFlags 4

例如,如果要同时设置NTLM和基本身份验证,则可以使用布尔值或将值组合在一起,例如
MD_AUTH_Basic|AuthNTLM
。这将生成
6
的整数结果:

::同时设置NTLM和基本身份验证

adsutil.vbs集/W3SVC/1/ROOT/MyApplication/AuthFlags 6

如果检查元数据库文件(
C:\WINDOWS\system32\inetsrv\metabase.xml
),并搜索:

Location=“/LM/W3SVC/1/ROOT/MyApplication”

…您将看到控制此设置的属性(如上所述设置为6后):

AuthFlags=“AuthBasic | AuthNTLM”

在元数据库中更新此值之前可能需要一些时间,因为这样的更改不会立即刷新到文件中(尽管IISRESET会导致文件立即更新)