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

Pau*_*aul 5 iis

我在IIS中有以下结构.

Internet Information Services  
 (local computer)
  Web Sites  
   Default Web Site  
    MyApplication
Run Code Online (Sandbox Code Playgroud)

MyApplication 是IIS中的应用程序.

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

这可以通过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"
Run Code Online (Sandbox Code Playgroud)

但是,我已经完成了能够运行

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)
Run Code Online (Sandbox Code Playgroud)

是否无法NTAuthenticationProviders在应用程序级别设置Metabase属性?

Kev*_*Kev 5

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

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

AuthFlags Metabase属性(IIS 6.0)(TechNet)

要将此值设置为Integrated Windows Authentication(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会导致它立即更新).