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

时间:2009-10-15 10:53:50

标签: iis

我在IIS中有以下结构。

Internet Information Services  
 (local computer)
  Web Sites  
   Default Web Site  
    MyApplication

MyApplication是IIS中的应用程序。

Default Web Site未设置集成Windows身份验证。 但是,我想在MyApplication上设置集成Windows身份验证。 (它是一个内联网应用程序)。

这可以通过GUI完成:右键单击Default Web Site并选择Properties。选择Directory Security选项卡,然后单击匿名访问和身份验证控件上的Edit

我想在安装脚本中包含它。我有其他设置命令,使用adsutil.vbs,但我很难设置集成Windows身份验证。

运行:

  

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

返回

NTAuthenticationProviders       : (STRING) "NTLM"

然而,我已经完成了能够运行

  

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

但是这会返回

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

是否无法在应用级别设置NTAuthenticationProviders元数据库属性?

1 个答案:

答案 0 :(得分:5)

控制IIS目录安全性上的Authenticated Access属性值的配置数据库属性 - >身份验证方法对话实际上称为AuthFlags

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

  

AuthFlags Metabase Property (IIS 6.0) (TechNet)

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

  

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

如果你想设置NTLM和基本身份验证,那么你可以将值一起布尔或值,例如MD_AUTH_BASIC | AuthNTLM。这将产生6的整数结果:

  

:: Set both NTLM and Basic authentication
  adsutil.vbs SET /W3SVC/1/ROOT/MyApplication/AuthFlags 6

如果检查配置数据库文件(C:\WINDOWS\system32\inetsrv\MetaBase.xml)并搜索:

  

Location="/LM/W3SVC/1/ROOT/MyApplication"

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

  

AuthFlags="AuthBasic | AuthNTLM"

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