2009-10-15 37 views
5

我在IIS中具有以下结构。在IIS中的应用程序级别设置NTAuthenticationProviders 6

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

MyApplication是IIS中的一个应用程序。

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

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

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

运行:

CSCRIPT // NOLOGO C:\的Inetpub \ AdminScripts \ ADSUTIL.VBS GET/SVC/1 /的NTAuthenticationProviders

返回

NTAuthenticationProviders  : (STRING) "NTLM" 

然而,我预计能够运行

CSCRIPT // NOLOGO C:\的Inetpub \ AdminScripts \ adsutil.vbs获取/ 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元数据库申请级别的财产?

回答

4

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

的值是一个标志,并且记录在这里:

AuthFlags Metabase Property (IIS 6.0) (TechNet)

要将该值设置为集成Windows身份验证(AuthNTLM)使用下面的命令,因为该命令操作(照顾在默认网站上,IISNumber:1) -

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

如果你想设置NTLM和基本身份验证,那么你可以在一起布置OR值,例如, 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会立即更新它)。

+0

棒极了!谢谢! – Paul

+1

顺便说一句你对IISRESET是正确的。 – Paul

相关问题