LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

如何在 IIS 7.0 配置中使用锁定&管理工具AppCmd直接修改

admin
2023年10月9日 15:2 本文热度 937

摘要

本文档介绍如何锁定和解锁服务器上的配置。 你将了解应用程序级配置文件可以替代哪些设置,以及如何使用 <location> 元素来锁定整个部分。

你将在部分内尝试更精细地锁定配置设置,例如:

  • 锁定特定元素和属性

  • 锁定除特定元素或属性 以外的 所有内容

  • 锁定特定集合指令, <add>例如 、 <remove>和 <clear> 指令

  • 锁定集合中的特定元素

阅读本文档后,你将了解如何通过直接编辑配置文件中的 XML 元素来管理配置锁定的不同功能, (编程接口来执行这些任务,这些任务非常) XML 结构。

本文档有意只侧重于编辑配置文件中的 XML 元素,而不是展示使用管理 API、脚本或用户界面 (UI) 完成相同任务的方法。

简介

IIS 7.0 及更高版本允许锁定和解锁不同级别和范围内的配置设置。 锁定配置意味着不能在层次结构中较低级别的所有) (重写或设置它。 解锁配置只能在锁定的级别上完成。 这非常有用,例如,为不同的站点或路径创建不同的配置,并且仅允许某些站点和路径重写它。 锁定可以在节级别执行,也可以对节内的特定元素、属性、集合元素和集合指令进行锁定。

任务 1:使用 <location> 标记锁定节

在此任务中,你将了解如何使用 <location> 标记在全局级别锁定 (或解锁) 整个配置节,以便无法在配置层次结构的应用程序级别重写它们。

 备注

默认情况下,applicationHost.config 中的大多数 IIS 节都处于锁定状态,并且不会锁定任何 .NET Framework (包括 machine.config 和 root web.config) 中的 <system.web> 节组中的 ASP.NET 节。

使用记事本等文本编辑器,在以下位置打开 applicationHost.config 文件:

%windir%\system32\inetsrv\config\applicationHost.config

<configSections>查看文件最顶部的部分:其中包含有关此文件中配置节的元数据,例如节的名称、包含节组以及它们是否被锁定。

锁定部分由“overrideModeDefault”属性指定,该属性为“Allow”或“Deny”。 默认情况下,不锁定极少数部分,如以下行所指定,例如:

XML

<section name="defaultDocument" overrideModeDefault="Allow" />

在这里,我们将处理 部分 <windowsAuthentication> 。 默认情况下,它处于锁定状态。

若要解锁服务器上所有应用程序的整个部分,请将其内容从文件中的当前位置移动到文件底部,并将其置于 元素内 <location overrideMode="Allow"> 。 还记得让节组围绕它:<system.webServer,然后><security是 <authentication>。> 最终结果应如下所示:

XML

<location overrideMode="Allow">

  <system.webServer>

     <security>

        <authentication>

          <!-- the content of windowsAuthentication section is here -->

        </authentication>

     </security>

  </system.webServer>

</location>

现在,已为所有应用程序解锁该部分。 可以在位置标记上指定路径,以便仅为此路径解锁分区。 如果未按上一步) (指定默认路径,则默认路径为 path=“.” (或 path=“”,) 表示“此当前级别”。 在这种情况下,由于这是applicationHost.config,因此当前级别表示全局级别。 还可以在命名空间层次结构中的任何位置(例如 vdir 级别的web.config)使用位置标记,从此点向下锁定配置。

下面是如何仅为“AdminSuperTrusted”站点解锁此部分的示例。 这意味着该站点上的web.config文件可以替代本节中的设置;但是,对于框上的所有其他站点,它在全局级别锁定,无法重写。

在此示例中,必须将节的内容保留在其原始位置applicationHost.config,然后在 location 标记中指定具有特定路径的节:

XML

<location path="AdminSuperTrustedSite" overrideMode="Allow">

  <system.webServer>

    <security>

      <authentication>

        <!-- note: this is different than previous example, in that  -->

        <!-- the content of the section is in the original place and -->

        <!-- was not moved here; in addition, the section is also    -->

        <!-- specified here, just by its name, so that it gets       -->

        <!-- unlocked only for the site specified in the location.   -->

        <windowsAuthentication/>

      </authentication>

    </security>

  </system.webServer>

</location>

返回到上面的第三个示例,为所有站点中的所有应用程序解锁节, (location path=“。) 。 检查主<身份验证节组是否 (元素外部的<location>组,) 文件中的“主身份验证>”部分是否不包含 <windowsAuthenitcation> 节。 节不能出现在位置标记外部和 location path=“的同一 <文件中。> 标记;这被视为无效配置。

若要测试某个分区是否已锁定,请在浏览器中转到 http://localhost/app 。

如果分区被锁定,浏览器将显示错误,因为应用程序级别的 web.config 文件包含 <windowsAuthentication> 节。 这意味着web.config尝试对其级别进行替代 <windowsAuthentication> 。 但是,由于该部分现在在全局级别锁定,因此web.config文件中的配置无效。

将位置标记更改为 overrideMode=“Deny”。 这会再次锁定该部分。 尝试其他分区,例如machine.config或根web.config中的 ASP.NET 节。尝试在全局级别锁定它们,并在web.config级别替代它们。

任务 2:锁定特定元素和属性

在上一个任务的基础上,找到 <windowsAuthentication> 标记内的 <location> 节。 设置位置标记以解锁节:overrideMode=“Allow”。 我们仅不会锁定节的特定部分。

将 enabled 属性设置为 true,然后通过设置 lockAttributes=“enabled”将其锁定。

这可以防止应用程序级配置文件更改节的 enabled 属性的值<windowsAuthentication>

如果要锁定其他属性,请将其添加到用逗号分隔的 lockAttributes 值,如以下示例所示:

控制台

lockAttributes="enabled,attribute1,attribute2"

还可以使用“*”锁定所有属性,如以下示例所示:

控制台

lockAttributes="*"

部分现在应如下所示:

XML

<location path="." overrideMode="Allow">   <system.webServer>

    <security>

      <authentication>

        <windowsAuthentication enabled="true" lockAttributes="enabled">         

          <providers>

            <add value="Negotiate" />

            <add value="NTLM" />

          </providers>

        </windowsAuthentication>

      </authentication>

    </security>

  </system.webServer>

</location>

在应用程序的 web.config 文件中,尝试替代 部分中的设置 <windowsAuthentication> 。

在浏览器中,请求页面验证是否可以替代除锁定的设置之外的所有设置(在本例中为 enabled 属性)。

 备注

只需在 web.config 文件中指定 属性会导致配置失败,即使在 Web.config 文件中设置的属性的值与 ApplicationHost.config 文件中的值相同也是如此。 将锁定的属性设置为任何值被视为尝试替代该属性,因此会失败。 (另请注意,属性与元素不同,在下一个任务中,你将锁定 element.)

删除 lockAttributes 属性。

设置 lockElements=“providers”以锁定 <providers> 节中的元素。

如果有要锁定的其他元素,可以添加用逗号分隔的元素,如下所示:

控制台

lockElements="providers,element1,element2"

部分现在应如下所示:

XML

<location path="." overrideMode="Allow">   <system.webServer>

    <security>

      <authentication>

        <windowsAuthentication enabled="true" lockElements="providers">

          <providers>

            <add value="Negotiate" />

            <add value="NTLM" />

          </providers>

        </windowsAuthentication>

      </authentication>

    </security>

  </system.webServer>

</location>

在应用程序Web.config文件中,通过设置元素或尝试将 元素添加到集合、从集合中删除或清除来替代 <providers> 元素。

在浏览器中,请求页面,并注意显示错误。 在 web.config 文件中,替代其他元素或属性,例如 enabled 属性。 浏览到页面,注意未显示任何错误。

删除 lockElements 属性。

任务 3:锁定除特定属性之外的所有内容

在此任务中,你将了解如何锁定节中的所有元素或属性,但定义的特定元素或属性除外。 如果不确定节具有或将来将具有哪些属性,并且想要锁定除显式设置为解锁的属性之外的所有属性,这非常有用。

在上一个任务的基础上,在 <windowsAuthentication> 位置标记中找到 节。

将 lockAllElementsExcept 或 lockAllAttributesExcept 属性设置为要锁定的元素或属性的逗号分隔列表。 例如, 部分可能如下所示:

XML

<windowsAuthentication enabled="true" lockAllElementsExcept="providers">

     <providers>

          <add value="Negotiate" />

          <add value="NTLM" />

     </providers>

</windowsAuthentication>

或者如下所示:

XML

<windowsAuthentication enabled="true" lockAllAttributesExcept="enabled">

     <providers>

          <add value="Negotiate" />

          <add value="NTLM" />

     </providers>

</windowsAuthentication>

在此特定部分中,当前没有其他属性或元素。 如果要测试设置 lockAllElementsExcept 或 lockAllAttributesExcept 属性的效果,请将相同的属性添加到具有更丰富的属性集的其他节。

任务 4:锁定某些集合指令

在此任务中,你将了解如何锁定 <add> 集合上的 和 <remove> 指令,以便在应用程序级别添加但不能删除配置文件元素。

在上一个任务的基础上,在 <windowsAuthentication> 位置标记中找到 节。

将集合中的 <providers>lockElements 属性设置为 remove,clear

完成后,该部分如下所示:

XML

<windowsAuthentication enabled="true" >

  <providers lockElements="remove,clear">

    <add value="Negotiate" />

    <add value="NTLM" />

  </providers>

</windowsAuthentication>

在应用程序的 web.config 文件中,创建一个 <remove> 从集合中删除 NTLM 元素的 元素。

完成后,web.config文件如下所示:

XML

<configuration>

  <system.webServer>

    <security>

      <authentication>

        <windowsAuthentication>

          <providers>

            <remove value="NTLM" />

          </providers>

        </windowsAuthentication>

      </authentication>

    </security>

  </system.webServer>

</configuration>

在浏览器中,请求 http://localhost/app

任务 5:锁定集合中的特定元素

在此任务中,你将了解如何锁定特定的集合元素。 开发人员仍可以在较低 (应用程序) 层次结构级别向集合中添加元素,并且他们仍然可以从集合中删除非锁定元素。 但是,它们无法删除你专门锁定的元素。 无法清除集合,因为清除意味着从集合中删除所有元素。

在前面的任务的基础上,在 <windowsAuthentication> 位置标记中找到 部分。

在 <providers> 集合中,在 NTLM 提供程序的 元素中 <add> ,将 lockItem 设置为“true”。

完成后,该部分如下所示:

XML

<windowsAuthentication enabled="true" >

  <providers>

    <add value="Negotiate" />

    <add value="NTLM" lockItem="true" />

  </providers>

</windowsAuthentication>

在应用程序web.config 文件中,创建一个 <remove> 从集合中删除 NTLM 元素的 元素。

完成后,Web.config文件如下所示:

XML

<configuration>

  <system.webServer>

    <security>

      <authentication>

        <windowsAuthentication>

          <providers>

            <remove value="NTLM" />

          </providers>

       </windowsAuthentication>

      </authentication>

    </security>

  </system.webServer>

</configuration>

在浏览器中,请求 http://localhost/app -- 请求失败。

摘要

本文档介绍了如何锁定配置设置。 可以通过使用 <location> 元素或将标记的 lockItem 属性设置为 true 来锁定整个节。 如果在集合元素上使用 lockAttributes、 lockElements、 lockAllAttributesExcept、 lockAllElementsExcept 或 lockItem 设置,并且对集合使用 lockElements 设置来指定特定集合指令 (<add>、 <remove>或) ,则锁定可以更加灵活和 <clear> 精细。 锁定可以在层次结构的任何级别发生,而不仅仅是ApplicationHost.config。锁定从该级别向下生效。


相关教程:

IIS7中如何通过新增加的管理工具AppCmd直接修改锁定节和解除锁定属性等各种参数[18]
  http://21613.oa22.cn

升级点晴MIS系统时提示:HTTP错误500.19-Internal Server Error锁定冲突,如何解决?[9]
  http://21614.oa22.cn

IIS7站点控制管理工具appcmd命令行直接修改IIS配置参数[4]
  http://21616.oa22.cn


该文章在 2023/10/9 15:30:16 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved