我在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属性?
实际上调用了控制IIS目录安全性 - >身份验证方法对话框上的Authenticated Access属性值的配置数据库属性AuthFlags.
该值是一个标志,在此处记录:
要将此值设置为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会导致它立即更新).
| 归档时间: |
|
| 查看次数: |
8482 次 |
| 最近记录: |