我在 IIS 中有以下结构。
Internet Information Services
(local computer)
Web Sites
Default Web Site
MyApplication
MyApplication
是 IIS 中的应用程序。
未设置集成 Windows 身份验证Default Web Site
。
但是我想将集成 Windows 身份验证设置为MyApplication
。 (它是一个内联网应用程序)。
这可以通过 GUI 完成:右键单击Default Web Site
并选择Properties
。选择Directory Security
选项卡,然后单击Edit
关于匿名访问和身份验证控制。
我想将其包含在安装脚本中。我还有其他设置命令,使用adsutil.vbs
但我正在努力设置集成 Windows 身份验证。
Running:
cscript //nologo c:\Inetpub\AdminScripts\adsutil.vbs GET /W3SVC/1/NTAuthenticationProviders
Returns
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
应用程序级别的元数据库属性?
控制 IIS 目录安全性 -> 身份验证方法对话框中的身份验证访问属性值的配置数据库属性实际上被称为AuthFlags
.
该值是一个标志,记录在此处:
AuthFlags 配置数据库属性 (IIS 6.0) (TechNet) http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/6cc53bc1-6487-412c-ae93-063cd86b4f6e.mspx?mfr=true
将此值设置为集成 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 会导致其立即更新)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)