[ASP.NET学习笔记之三十一]ASP.NET配置管理

ASP.NET 配置管理

 

ASP.NET 2.0 配置管理概述

配置管理概述

可以配置整个服务器、ASP.NET 应用程序或应用程序子目录中的单个页

可以配置的功能包括身份验证的模式、页面缓存、编译器选项、自定义错误、调试和跟踪选项以及更多。

l        配置文件

ASP.NET配置数据存储在XML文本文件中

每一个XML文本文件都命名为Web.config

所有的ASP.NET 配置信息都驻留在Web.config 文件中的configuration 元素中

整个服务器的Web.Config位置在:

:/WinDir%/Microsoft.NET/Framework/[版本号]/CONFIG

 

l         配置节处理程序声明

Web.config 文件中的configSections 元素中

     configSections必须是configuration的第一个子元素

 

l         配置节设置

位于配置节处理程序声明区域之后,它包含实际的配置设置。

     可以包含子元素,这些子元素与其父元素由同一个节处理程序处理。

 

l       继承性

ASP.NET配置是可继承的

每个Web.config 文件都将配置设置应用于它所在的目录以及它下面的所有子目录

子目录中的设置可以重写或修改父目录中指定的设置

可以将Web.config 文件中的配置设置应用于个别文件或子目录

【代码分析】

假设存在目录结构/root/SubFolder1:

Root文件夹的Web.Config

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

<configSections>

<section name="MSDNConfiguration" type="MyConfigSectionHandler.MSDNConfig, MyConfigSectionHandler, Version= 1.0.0 .0, Culture=neutral, PublicKeyToken=null" allowLocation="true" allowDefinition="Everywhere"/>

<section name="myCustomSection" type="MyConfigSectionHandler.MyHandler, MyConfigSectionHandler, Version= 1.0.0 .0, Culture=neutral, PublicKeyToken=null" allowLocation="true"  allowDefinition="Everywhere" />

</configSections>

<!--省略-->

<location path="SubFolder1" allowOverride="true">

<system.web>

              <authorization>

                   <deny users="*"/>

              </authorization>

</system.web>   

</location>

<location path="SubFolder1/Default.aspx">

<system.web>

              <authorization>

                   <allow users="*"/>

              </authorization>

</system.web>

</location>

</configuration>

SubFolder1文件夹下的Web.Config

<configuration>

    <appSettings/>

    <connectionStrings/>

    <system.web>

      <authorization>

        <allow users="*"/>

      </authorization>

    </system.web>

</configuration>

虽然在root文件夹下禁止任何用户访问SubFolder1,但是由于SubFolder1Web.Config配置优先级高于其父文件夹,所以还是可以访问的。

不过如果在节点<location path="SubFolder1/Default.aspx">下设置<deny users="*"/>,那么这个具体的页面Default.aspx还是不能访问的

 

ASP.NET 2.0 配置管理新增功能介绍

l       配置管理新增功能介绍

ASP.NET MMC 管理单元

可视化的配置工具

可配置全局、网站和应用程序

     要求本机的管理员权限

【注解】ASP.NET MMC管理单元可视化修改全局或者具体应用程序的web.config,需要本机的管理员权限

 

 

 

l       网站管理工具

使用Web浏览器管理站台

在本地和远程都可进行操作

需要网站的管理权限

     无需本机的管理员权限

【注解】允许以网络形式管理应用程序,但是功能相对较少,主要是从安全功能考虑的,不过需要网站的管理权限。启动方法:站点-asp.net管理

对网站具有管理权限的任何人都可以使用网站管理工具来管理该网站的配置设置。网站管理工具旨在为各个网站中最常用的配置设置提供一个用户友好的图形编辑工具。由于网站管理工具使用基于浏览器的界面,因此它允许您远程更改网站设置,这对于管理已经部署到成品 Web 服务器的站点(如承载的网站)非常有用。

网站管理工具与 ASP.NET MMC 管理单元在若干方面存在不同。例如,ASP.NET MMC 管理单元最适于管理员级别的配置,因为它提供对 Web 服务器上的整个配置文件层次结构的访问,而不是提供对单个网站的配置设置的访问。此外,您还必须是管理员才能使用 ASP.NET MMC 管理单元,而网站管理工具只允许各个网站所有者在他们具有管理权限的站点的根目录中配置 Web.config 文件。最后,您不能使用 ASP.NET MMC 管理单元来远程管理 IIS,但是,网站管理工具的浏览器界面允许远程配置 IIS 6.0 和更高版本的 IIS

网站管理工具包括一个选项卡式界面,该界面在下列选项卡上对相关的配置设置进行分组:

安全选项卡,其中包含有助于保护 Web 应用程序资源并管理用户帐户和角色的设置。

配置文件选项卡,其中包含用来管理网站如何收集访问者信息的设置。

应用程序选项卡,其中包含用来管理影响 ASP.NET 应用程序的配置元素的设置。

提供程序选项卡,其中包含用来添加、编辑、删除、测试或分配应用程序提供程序的设置。

 

 

l       查看配置架构和默认设置

%SystemRoot%/Microsoft .NET/Framework/versionNumber/CONFIG 目录下

Machine.config.comments

Web.config.comments

     包含默认设置和有用注释的列表

      

ASP.NET 2.0 配置API

配置类和命名空间

System.Configuration 命名空间

System.Configuration.Configuration

System.Web.Configuration 命名空间

     System.Web.Configuration.WebConfigurationManager

 

【代码分析】

如何读取当前Web应用程序的继承设置?

Configuration config = WebConfigurationManager.OpenWebConfiguration("/VS2005Demo8");

config.SaveAs("c://MyApp.web.config", ConfigurationSaveMode.Full, true);

[注解] ConfigurationSaveMode有三种模式:FullMinimalModified(保存修改后的)

如何读取应用程序设置?

this.Label1.Text = WebConfigurationManager.AppSettings["myApp"].ToString();

如何读取连接字符串?

。。。WebConfigurationManager.ConnectionStrings["AdventureWorksConnectionString"]

如何读取任一节点的值?

string configPath = "/VS2005Demo8";

Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);

CompilationSection section = (CompilationSection)config.GetSection("system.web/compilation");

StringBuilder compilation = new StringBuilder();

compilation.Append("debug: ");

compilation.Append(section.Debug.ToString());

[注解] 节点要区分大小写

如何使用IconfigurationSectionHandler 创建自定义配置节?(asp.net1.0/1.1

 

如何使用ConfigurationSection 创建自定义配置节?

 

详细步骤请阅:在ASP.NET1.X和ASP.NET2.0中如何创建自定义配置节 

以下是上面要用的部分配置文件

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

     <configSections>

         <!--MyConfigSectionHandler.MSDNConfig:节点的处理程序-->

<!--MyConfigSectionHandler:程序集-->

          <section name="MSDNConfiguration" type="MyConfigSectionHandler.MSDNConfig, MyConfigSectionHandler, />

          <section name="myCustomSection" type="MyConfigSectionHandler.MyHandler, MyConfigSectionHandler, />

  </configSections>

 

     <MSDNConfiguration>

         <add key="Ext_SvrName" value="Ben/SQL2005"/>

         <add key="Ext_DBName" value="aspnetdb"/>

         <add key="Ext_UID" value="sa"/>

         <add key="Ext_Pwd" value=""/>

     </MSDNConfiguration>

  <myCustomSection myAttrib1="Clowns">

    <myChildSection myChildAttrib1="Zippytest" myChildAttrib2="Michael Zawondy test "/>

  </myCustomSection>

 

  <appSettings>

    <add key="myapp" value="myvalue"/>

  </appSettings>

     <connectionStrings>

  <add name="AdventureWorksConnectionString" connectionString="Data Source=BEN/SQL2005;Initial Catalog=AdventureWorks;User ID=sa"

   providerName="System.Data.SqlClient" />

  <add name="LocalSqlServer" connectionString="Data Source=BEN/SQL2005;Initial Catalog=aspnetdb;User ID=sa"

   providerName="System.Data.SqlClient" />

 </connectionStrings>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值