所有站点的虚拟目录默认值 <virtualDirectoryDefaults>
概述
<sites>
元素的 <virtualDirectoryDefaults>
元素指定服务器上的所有虚拟目录的默认设置。 <virtualDirectoryDefaults>
元素可用于定义您希望服务器上的所有虚拟目录的公共属性,以在这些虚拟目录没有显式定义的属性时隐式共享。
注意
如果在特定虚拟目录的 <virtualDirectoryDefaults>
部分和 <virtualDirectory>
部分中配置了相同的特性或子元素,则将 <virtualDirectory>
部分中的配置用于该虚拟目录。
兼容性
版本 | 说明 |
---|---|
IIS 10.0 | <virtualDirectoryDefaults> 元素在 IIS 10.0 中未进行修改。 |
IIS 8.5 | <virtualDirectoryDefaults> 元素在 IIS 8.5 中未进行修改。 |
IIS 8.0 | <virtualDirectoryDefaults> 元素在 IIS 8.0 中未进行修改。 |
IIS 7.5 | <virtualDirectoryDefaults> 元素在 IIS 7.5 中未进行修改。 |
IIS 7.0 | IIS 7.0 中引入了 <sites> 元素的 <virtualDirectoryDefaults> 元素。 |
IIS 6.0 | 空值 |
安装
在 IIS 7 的默认安装中包含 <sites>
元素的 <virtualDirectoryDefaults>
元素。
操作方式
如何为服务器配置默认虚拟目录凭据
打开 Internet Information Services (IIS) 管理器:
如果使用的是 Windows Server 2012 或 Windows Server 2012 R2:
- 在任务栏上,单击“服务器管理器”,单击“工具”,然后单击“Internet Information Services (IIS) 管理器”。
如果使用的是 Windows 8 或 Windows 8.1:
- 按住 Windows 键,按字母 X,然后单击“控制面板”。
- 单击“管理工具”,然后双击“Internet Information Services (IIS) 管理器”。
如果使用的是 Windows Server 2008 或 Windows Server 2008 R2:
- 在任务栏上,单击“开始”,指向“管理工具”,然后单击“Internet Information Services (IIS) 管理器”。
如果使用的是 Windows Vista 或 Windows 7:
- 在任务栏上,单击“开始”,然后单击“控制面板”。
- 双击“管理工具”,然后双击“Internet Information Services (IIS) 管理器”。
在“连接”窗格中,展开服务器节点,然后单击“站点”节点。
配置
特性
属性 | 说明 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
allowSubDirConfig |
可选布尔属性。 指定 IIS 是在低于当前级别目录层次结构的内容目录中查找 Web.config 文件 (true),还是不在低于当前级别的内容目录中查找 web.config 文件 (false)。 默认值为 true 。 |
||||||||||
logonMethod |
可选枚举特性。 指定服务器上的所有虚拟目录的默认设置。 logonMethod 属性的值可以是下列其中一个。 默认为 ClearText 。
|
||||||||||
password |
可选的字符串属性。 指定与用户名关联的密码。 注意:为避免在配置文件中存储未加密的密码字符串,请始终使用 AppCmd.exe 或 IIS 管理器输入密码。 如果使用这些管理工具,将密码字符串写入 XML 配置文件之前将对其自动加密。 这比存储未加密的密码具有更好的密码安全性。 |
||||||||||
path |
可选的字符串属性。 指定服务器上的所有虚拟目录的默认虚拟路径。 |
||||||||||
physicalPath |
可选的字符串属性。 指定服务器上所有虚拟目录的默认物理路径。 |
||||||||||
userName |
可选的字符串属性。 指定帐户的默认用户名,该帐户可访问服务器上所有虚拟目录的配置文件和内容。 |
子元素
无。
配置示例
以下配置示例指定服务器上的所有虚拟目录的默认登录方法。
<sites>
<virtualDirectoryDefaults logonMethod="Network" />
</sites>
代码示例
以下代码示例为服务器上的所有虚拟目录指定默认登录方法。
AppCmd.exe
appcmd.exe set config -section:system.applicationHost/sites /virtualDirectoryDefaults.logonMethod:"Network" /commit:apphost
注意
使用 AppCmd.exe 配置这些设置时,必须确保将 commit 参数设置为 apphost
。 这会将配置设置提交到 ApplicationHost.config 文件中的相应位置部分。
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites");
ConfigurationElement virtualDirectoryDefaultsElement = sitesSection.GetChildElement("virtualDirectoryDefaults");
virtualDirectoryDefaultsElement["logonMethod"] = @"Network";
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim sitesSection As ConfigurationSection = config.GetSection("system.applicationHost/sites")
Dim virtualDirectoryDefaultsElement As ConfigurationElement = sitesSection.GetChildElement("virtualDirectoryDefaults")
virtualDirectoryDefaultsElement("logonMethod") = "Network"
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST");
var virtualDirectoryDefaultsElement = sitesSection.ChildElements.Item("virtualDirectoryDefaults");
virtualDirectoryDefaultsElement.Properties.Item("logonMethod").Value = "Network";
adminManager.CommitChanges();
VBScript
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST")
Set virtualDirectoryDefaultsElement = sitesSection.ChildElements.Item("virtualDirectoryDefaults")
virtualDirectoryDefaultsElement.Properties.Item("logonMethod").Value = "Network"
adminManager.CommitChanges()