web.config详解

合集下载

Web.config常用配置说明

Web.config常用配置说明

web.config文件是一个XML文件,它的根结点是<configuration>,在<configuration>节点下的常见子节点有:<configSections>、<appSettings>、<connectionStrings>和<system.web>。

其中<appSettings>节点主要用于配置一些网站的应用配置信息,而<connectionStrings>节点主要用于配置网站的数据库连接字符串信息。

<system.web>节点主要是网站运行时的一些配置,它的常见节点有如下:Web.config常用配置<appSettings>节点<appSettings>节点主要用来存储应用程序的一些配置信息,系统常用的一些全局变量,如上传文件的保存路径等。

<appSettings><!--允许上传的图片格式类型--><add key="ImageType" value=".jpg;.bmp;.gif;.png;.jpeg"/><!--允许上传的文件类型--><add key="FileType" value=".jpg;.bmp;.gif;.png;.jpeg;.pdf;.zip;.rar;.xls;.doc"/></appSettings>对于<appSettings>节点中的值可以按照key来进行访问,以下就是一个读取key值为“FileType”节点值的例子:string fileType=ConfigurationManager.AppSettings["FileType "];<authentication>节点设置身份验证模式,有四种身份验证模式,它们的值分别如下:Mode 说明Windows 使用Windows身份验证,适用于域用户或者局域网用户。

net中web.config一个配置文件解决方法(其他配置文件引入方式)

net中web.config一个配置文件解决方法(其他配置文件引入方式)

net中web.config⼀个配置⽂件解决⽅法(其他配置⽂件引⼊⽅式)近期⼀个项⽬需要写许多的配置项,发现在单个web.config⾥⾯写的话会很乱也难于查找所以搜了⼀下解决了,记录下来⼀、 webconfig提供了引⼊其他config的⽅式<connectionStrings configSource="Configs\database.config" />这个是连接字符串的配置你可以在database。

config⾥⾯写很多链接字符串以备⾃⼰调⽤database。

config⾥⾯的内容如下:<?xml version="1.0" encoding="utf-8"?><connectionStrings><add name="SDbContext" connectionString="Server=.;Initial Catalog=Self;User ID=sa;Password=password" providerName="System.Data.SqlClient"/> </connectionStrings><appSettings configSource="Configs\system.config" />这个是键值对的⽅式存放代码如下:<?xml version="1.0" encoding="utf-8"?><appSettings><!-- ================== 1:开发系统相关配置 ================== --><!-- 登陆提供者模式:Session、Cookie--><add key="LoginProvider" value="Cookie"/><!-- 启⽤系统⽇志--><add key="IsLog" value="true"/><!-- 数据库超时间--><add key="CommandTimeout" value="180"/><!--启⽤IP过滤 --><add key="IsIPFilter" value="false"/><!-- ================== 2:系统软件参数配置 ================== --><!-- 联系我们 --><add key="Contact" value="TE Software(Mobility)"/><!-- 软件名称 --><add key="SoftName" value="Sub Self"/><!-- 软件版本 --><add key="Version" value="1.0"/><!-- 设置就应⽤路径 --><add key="AppName" value=""/><!-- 设置就应⽤路径 --><add key="SqlGetBomList" value=""/></appSettings>以上两个是不需要特殊的配置的,放到configuration⾥⾯ configSections的下⾯这样就可以⼆、下⾯介绍⾃定义配置节<configSections><section name="users" type="ValueSectionHandler"/></configSections><users configSource="users.config"></users>注意configsections⾥⾯的⼀条,是声明这是以什么组织⽅式users.config ⾥⾯的内容如下:<users><add key="beijing" value="123"></add><add key="tianjin" value="123"></add></users>获取配置的⽅式:NameValueCollection users = System.Configuration.ConfigurationManager.GetSection("users") as NameValueCollection;// Response.Write(users.Keys[0]+"</br>"+users.Keys[1]);users.Get("beijing"); 三、复杂类型:复杂类型的声明就不同了<configSections><section name="roles" type="EBuy.Chapter3.NTier.WebUI.RolesConfig, EBuy.Chapter3.NTier.WebUI"/></configSections><roles configSource="roles.config"></roles>内容如下<roles><add username="beijing" password="123"></add><add username="tianjin" password="123"></add></roles>获取⽅式:using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace EBuy.Chapter3.NTier.WebUI{public class RolesConfig : System.Configuration.IConfigurationSectionHandler{public object Create(object parent, object configContext, System.Xml.XmlNode section){return section;}}}XmlNode roles= System.Configuration.ConfigurationManager.GetSection("roles") as XmlNode;Response.Write(roles.ChildNodes [0].Attributes["username"].InnerText);还可以配置为实体using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace EBuy.Chapter3.NTier.WebUI{public class RolesConfig : System.Configuration.IConfigurationSectionHandler{public object Create(object parent, object configContext, System.Xml.XmlNode section){var list=new List<Role>();for(int i=0;i<section.ChildNodes.Count;i++){list.Add(new Role (){Username =section.ChildNodes[i].Attributes["username"].InnerText ,Password =section.ChildNodes[i].Attributes["password"].InnerText });}return list;}}public class Role{public string Username { get; set; }public string Password{get;set;}}}var roles = System.Configuration.ConfigurationManager.GetSection("roles") as List<EBuy.Chapter3.NTier.WebUI.Role >; Response.Write(roles.First ().Username);。

web.config文件 规则

web.config文件 规则

web.config文件规则
web.config文件是用于配置网站的XML格式文件。

它包含了许多不同类型的规则,用于配置网站的行为和功能。

以下是一些常见的规则:
1. 认证和授权规则, web.config文件可以包含认证和授权规则,用于定义哪些用户可以访问网站的特定部分,以及他们可以执行的操作。

这些规则可以基于角色、用户或其他条件进行配置。

2. URL重写规则,通过使用URL重写规则,web.config文件可以配置网站的URL结构,将复杂的URL重写为更简洁、易于理解的形式。

这对于搜索引擎优化和用户友好性非常重要。

3. 错误处理规则, web.config文件可以定义网站遇到错误时的行为。

例如,可以配置自定义的错误页面,或者将特定类型的错误记录到日志中。

4. 缓存规则,通过web.config文件,可以配置网站的缓存策略,包括哪些内容需要被缓存、缓存的过期时间等。

5. 会话状态规则, web.config文件可以配置网站的会话状态
管理方式,包括会话超时时间、会话数据的存储方式等。

6. 安全规则, web.config文件可以包含安全规则,用于配置
网站的安全性,例如设置HTTPS连接、防止跨站点请求伪造(CSRF)等。

7. MIME类型规则, web.config文件可以定义网站支持的
MIME类型,以便正确处理各种类型的文件。

总的来说,web.config文件是网站的核心配置文件,
其中包含了各种规则,用于定义网站的行为、安全性、性能和功能。

通过合理配置web.config文件中的规则,可以使网站更加安全、可
靠且高效。

Web.config详解

Web.config详解

一、认识Web.config文件Web.config 文件是一个XML文本文件,它用来储存 Web 应用程序的配置信息(如最常用的设置 Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。

当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。

如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。

它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。

(一).Web.Config是以XML文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点:位于配置文件的顶部,包含在<configSections>标志中。

2.特定应用程序配置特点: 位于<appSetting>中。

可以定义应用程序的全局常量设置等信息.3.配置节设置特点: 位于<system.Web>节中,控制运行时的行为.4.配置节组特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.(二).配置节的每一节1.<configuration>节根元素,其它节都是在它的内部.2.<appSetting>节此节用于定义应用程序设置项。

对一些不确定设置,还可以让用户根据自己实际情况自己设置用法:I.<appSettings><add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/><appSettings>定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码. II.<appSettings><add key="ErrPage" value="Error.aspx"/><appSettings>定义了一个错误重定向页面.3.<compilation>节格式:<compilationdefaultLanguage="c#"debug="true"/>I.default language: 定义后台代码语言,可以选择C#和两种语言.IIdebug : 为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行时的性能。

Web.Config中数据库连接字符串解析

Web.Config中数据库连接字符串解析

Web.Config中数据库连接字符串解析在中,穿过Web.config,您可为使用<appSettings> 本忘,在这个标志中,你可用 <add ... /> 本忘界说0到少个设置。

原文中人们重要议论了怎样使用web.config来设置装备摆设一个web运用程序中的数据库连交。

一.基础利用web.config文件是尺度的xml文件,人们可以使用它来为一台呆板下的每一个web使用程序或某个应用程序或一个目录下的版面来举行设置,固然,它也可认为一个独自的web页里入止设置。

SqlServer连接配放:<add name="LocalSqlServer" connectionString="Data Source=./SQLExpress;min pool size=5;max pool size=512;IntegratedSecurity=True;AttachDBFilename=|DataDirectory|TimeTracker.mdf;UserInstance=true" /><add name="MDM" connectionString="Data Source=10.21.17.17,22/ND0;Initial Catalog=MDM_V2;Persist Security Info=True;UserID=sa;Password=Lenovo!123" providerName="System.Data.SqlClient";min pool size=5;max pool size=512;/>SqlConnectionStringBuilder真例化时,要用到connectionString,如:SqlConnectionStringBuild builder = newSqlConnectionStringBuild(connectionString)。

webconfig 参数

webconfig 参数

webconfig 参数WebConfig 参数是指在Web应用程序的配置文件中使用的一组参数,它们用于配置和调整Web应用程序的行为和功能。

WebConfig 参数的正确配置对于应用程序的性能、安全性和可靠性都起着重要的作用。

本文将介绍一些常见的WebConfig 参数,并解释它们的作用和用法。

1. `<compilation>` 参数:这个参数用于配置应用程序的编译方式。

其中的 `debug` 属性控制是否启用调试模式,`batch` 属性控制是否启用批处理编译,`targetFramework` 属性指定应用程序的目标框架版本。

正确配置这些参数可以提高应用程序的性能和安全性。

2. `<httpRuntime>` 参数:这个参数用于配置应用程序的运行时行为。

其中的 `maxRequestLength` 属性指定了请求的最大长度,`executionTimeout` 属性指定了请求的最大执行时间。

合理地配置这些参数可以避免应用程序受到恶意请求的攻击,同时也可以提高应用程序的响应速度。

3. `<sessionState>` 参数:这个参数用于配置应用程序的会话状态管理方式。

其中的 `mode` 属性指定了会话状态的模式,可以是`InProc`、`StateServer` 或 `SQLServer`。

`timeout` 属性指定了会话的超时时间。

正确配置这些参数可以确保应用程序的会话状态管理安全可靠。

4. `<authentication>` 参数:这个参数用于配置应用程序的身份验证方式。

其中的 `mode` 属性指定了身份验证的模式,可以是`Windows`、`Forms` 或 `None`。

`Forms` 模式下,还可以配置`loginUrl` 属性指定登录页的 URL。

正确配置这些参数可以保护应用程序的安全性,防止未授权的访问。

5. `<authorization>` 参数:这个参数用于配置应用程序的授权方式。

Web.config详解

Web.config详解

Web.config详解一、认识Web.config文件Web.config文件是一个xml文本文件,它用来储存 Web 应用程序的配置信息(如最常用的设置 Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。

当你通过.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。

如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。

它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。

(一).Web.Config是以xml文件规范存储,配置文件分为以下格式1.配置节处理程序声明特点:位于配置文件的顶部,包含在<configSections>标志中。

2.特定应用程序配置特点: 位于<appSetting>中。

可以定义应用程序的全局常量设置等信息.3.配置节设置特点: 位于<system.Web>节中,控制运行时的行为.4.配置节组特点: 用<sectionGroup>标记,可以自定义分组,可以放到<configSections>内部或其它<sectionGroup>标记的内部.(二).配置节的每一节1.<configuration>节根元素,其它节都是在它的内部.2.<appSetting>节此节用于定义应用程序设置项。

对一些不确定设置,还可以让用户根据自己实际情况自己设置用法:I.<appSettings><add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/><appSettings>定义了一个连接字符串常量,并且在实际应用时可以修改连接字符串,不用修改程式代码. II.<appSettings><add key="ErrPage" value="Error.aspx"/><appSettings>定义了一个错误重定向页面.3.<compilation>节格式:<compilationdefaultLanguage="c#"debug="true"/>I.default language: 定义后台代码语言,可以选择c#和两种语言.IIdebug : 为true时,启动aspx调试;为false不启动aspx调试,因而可以提高应用程序运行时的性能。

web.config文件中链接字符串的定义和使用方式

web.config文件中链接字符串的定义和使用方式

web.config文件中链接字符串的定义和使用方式在 Web 应用程序中,`web.config` 文件用于存储应用程序的配置信息,包括数据库连接字符串。

连接字符串用于指定应用程序如何连接到数据库。

下面是在`web.config` 文件中定义和使用连接字符串的方式:1. 打开项目中的`web.config` 文件。

2. 在`<configuration>` 标签下添加`<connectionStrings>` 元素,用于存储连接字符串。

如果该元素已经存在,则可以直接在其中添加连接字符串。

```xml<configuration><connectionStrings><!--连接字符串的定义--><add name="MyConnectionString" connectionString="Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password" providerName="System.Data.SqlClient" /></connectionStrings>...</configuration>```上述示例中,`name` 属性是连接字符串的名称,`connectionString` 属性是实际的连接字符串,`providerName` 属性是用于指定数据库提供程序的名称(例如,SQL Server 的提供程序名称为"System.Data.SqlClient")。

3. 在应用程序中使用连接字符串:-在代码中,可以使用`System.Configuration.ConfigurationManager.ConnectionStrings` 对象来访问连接字符串:```csharpstring connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].Connecti onString;```这将返回名为"MyConnectionString" 的连接字符串的实际值。

Asp.net中web.config配置文件详解(二)

Asp.net中web.config配置文件详解(二)

中web.config配置⽂件详解(⼆)摘⾃近⽇正在看,看到Web.config有很不清楚之处,特意从⽹络、MSDN搜集、归纳和整理,供⼤家分享。

在的web.config中,可以⽤两种⽅式来写连接字符串的配置。

<configuration><appSettings><add key="connstr1" value="Data Source=.;Initial Catalog=DBName;Integrated Security=true"/><add key="connstr2" value="........."></appSettings><connectionStrings><add name="connstr3" connectionString="........" /><add name="connstr4" connectionString="......" providerName="System.Data.Sqlclient"</connectionStrings></configuration>如上代码所⽰:两种⽅式为appSettings和connectionStringsappSettings:①它是1.1的时候⽤的,在vs2003中⽤的②⾥⾯存的相当于键值对的形式,key和value。

不仅仅可以存连接字符串,还可以存储⼀些配置项。

其中value中包括数据库服务器地址、⽤户名和密码、数据库名称等信息。

③在appSettings中,不能使⽤ProviderName="System.Data......."(不过如果你要⽤也可以,只要写在value⾥⾯就可以了,当成值传递过去)④在后台取值⽅式⽤代码:string conn=System.Configuration.ConfigurationManager.AppSettings["connstr";]connectionStrings:①它是2.0中新增的。

Web.config配置文件详解(新手必看)

Web.config配置文件详解(新手必看)

Web.c‎o nfig‎配置文件详‎解(新手必‎看)‎花了点时间‎整理了一下‎A SP.N‎E T We‎b.con‎f ig配置‎文件的基本‎使用方法。

‎很适合新手‎参看,由于‎W eb.c‎o nfig‎在使用很灵‎活,可以自‎定义一些节‎点。

所以这‎里只介绍一‎些比较常用‎的节点。

‎<?xm‎l ver‎s ion=‎"1.0"‎?><‎!--注意‎:除了手‎动编辑此文‎件以外,您‎还可以使用‎Web ‎管理工具来‎配置应用程‎序的设置。

‎可以使用‎V isua‎l Stu‎d io 中‎的“网站”‎->“As‎‎配置”选‎项。

设‎置和注释的‎完整列表在‎mach‎i ne.c‎o nfig‎.comm‎e nts ‎中,该文件‎通常位于‎"Wind‎o ws"M‎i cros‎o ft.N‎e t"Fr‎a mewo‎r k"v2‎.x"Co‎n fig ‎中。

-->‎<!‎--Web‎c onfi‎g文件是一‎个xml文‎件,con‎f igur‎a tion‎是xml文‎件的根节点‎,由于xm‎l 文件的根‎节点只能有‎一个,所以‎W ebco‎n fig的‎所有配置都‎是在这个节‎点内进行的‎。

-->‎<con‎f igur‎a tion‎>‎<!--指‎定配置节和‎命名空间声‎明。

cle‎a r:移除‎对继承的节‎和节组的所‎有引用,只‎允许由当前‎sect‎i on 和‎sect‎i onGr‎o up 元‎素添加的节‎和节组。

r‎e move‎:移除对继‎承的节和节‎组的引用。

‎se‎c tion‎:定义配置‎节处理程序‎与配置元素‎之间的关联‎。

sect‎i onGr‎o up:定‎义配置节处‎理程序与配‎置节之间的‎关联。

--‎><‎c onfi‎g Sect‎i ons>‎‎<sec‎t ionG‎r oup ‎n ame=‎"syst‎e m.we‎b.ext‎e nsio‎n s"t‎y pe="‎S yste‎m.Web‎.Conf‎i gura‎t ion.‎S yste‎m WebE‎x tens‎i onsS‎e ctio‎n Grou‎p,Sy‎s tem.‎W eb.E‎x tens‎i ons,‎Vers‎i on=1‎.0.61‎025.0‎, Cul‎t ure=‎n eutr‎a l,P‎u blic‎K eyTo‎k en=3‎1bf38‎56ad3‎64e35‎">‎‎<sect‎i onGr‎o up n‎a me="‎s crip‎t ing"‎type‎="Sys‎t em.W‎e b.Co‎n figu‎r atio‎n.Scr‎i ptin‎g Sect‎i onGr‎o up, ‎S yste‎m.Web‎.Exte‎n sion‎s,Ve‎r sion‎=1.0.‎61025‎.0, C‎u ltur‎e=neu‎t ral,‎Publ‎i cKey‎T oken‎=31bf‎3856a‎d364e‎35">‎‎ <‎s ecti‎o n na‎m e="s‎c ript‎R esou‎r ceHa‎n dler‎"typ‎e="Sy‎s tem.‎W eb.C‎o nfig‎u rati‎o n.Sc‎r ipti‎n gScr‎i ptRe‎s ourc‎e Hand‎l erSe‎c tion‎,Sys‎t em.W‎e b.Ex‎t ensi‎o ns, ‎V ersi‎o n=1.‎0.610‎25.0,‎Cult‎u re=n‎e utra‎l,Pu‎b licK‎e yTok‎e n=31‎b f385‎6ad36‎4e35"‎requ‎i rePe‎r miss‎i on="‎f alse‎"all‎o wDef‎i niti‎o n="M‎a chin‎e ToAp‎p lica‎t ion"‎/>‎‎</sec‎t ionG‎r oup>‎‎</se‎c tion‎G roup‎>‎ <se‎c tion‎name‎="rew‎r iter‎"typ‎e="In‎t elli‎g enci‎a.Url‎R ewri‎t er.C‎o nfig‎u rati‎o n.Re‎w rite‎r Conf‎i gura‎t ionS‎e ctio‎n Hand‎l er, ‎I nt el‎l igen‎c ia.U‎r lRew‎r iter‎" />‎</c‎o nfig‎S ecti‎o ns>‎‎<!--a‎p pSet‎t ings‎是应用程序‎设置,可以‎定义应用程‎序的全局常‎量设置等信‎息-->‎‎<app‎S etti‎n gs>‎<ad‎d key‎="1" ‎v alue‎="1" ‎/>‎<add ‎k ey="‎g ao" ‎v alue‎="wei‎p eng"‎/>‎</ap‎p Sett‎i ngs>‎‎<!--‎连接字符串‎设置-->‎<c‎o nnec‎t ionS‎t ring‎s>‎ <a‎d d na‎m e="C‎o nnSt‎r ing"‎conn‎e ctio‎n Stri‎n g="D‎a ta S‎o urce‎=GAO;‎I niti‎a lCa‎t alog‎=HBWX‎D ate;‎U ser ‎I D=sa‎;pass‎w ord=‎s a"><‎/add>‎‎<add‎name‎="111‎" con‎n ecti‎o nStr‎i ng="‎11111‎" />‎</c‎o nnec‎t ionS‎t ring‎s>‎<!‎--指定应‎用子配置设‎置的资源,‎并锁定配置‎设置,以防‎止它们被子‎配置文件重‎写。

webConfig说明文档

webConfig说明文档

Configuration:指定公共语言运行库和.NET Framework应用程序所使用的每个配置文件中均需要的根元素System.Web:指定配置文件中配置设置的根元素。

并且包含各种元素,这些元素配置在 Web应用程序的行为方式一、Configuration元素1)configSections:指定配置节和命名空间声明子元素:✧allowDefinition:指定可以在哪个配置文件中使用该节。

此特性的值是下列值:⏹Everywhere:允许在任何配置文件或目录中配置该节,如下所示(Machine.config,根Web.config,应用程序的Web.config,虚拟目录,应用程序中的物理子目录)⏹MachineToApplication:允许在下列文件之一中配置该节:(Machine.config,根Web.config,应用程序的Web.config)⏹MachineToWebRoot :允许在下列文件之一中配置该节:(Machine.config,根Web.config)⏹MachineOnly:只允许在Machine.config文件中配置该节✧allowExeDefinition:指定可以再哪个配置文件中使用该节,该特性可以是下列值:⏹MachineToApplication:允许在下列文件之一配置该节(Machine.config,应用程序配置)⏹MachineToRoamingUser⏹MachineToLocalUser⏹MachineOnly:只允许在Machine.config文件中配置该节✧allowLocation:指定是否可以在location元素内使用该节✧name:指定在该节的配置数据发生更改时是否应当重新启动应用程序✧restartOnExternalChanges:指定在该节的配置数据发生更改时是否应当重新启动应用程序✧type:必选特性。

指定用来执行如下操作的配置节处理程序类的名称:处理在name特性中指定的节或元素中的配置设置。

ASP.NET web.config 配置节点详解

ASP.NET web.config 配置节点详解

这篇文章主要介绍了 web.config 节点的配置,讲解的非常详细,需要的朋友可以参考下。

web.config 文件查找规则:(1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找。

(2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名,则查找它的上级目录,直到网站的根目录。

(3)如果网站根目录下不存在web.config文件或者web.config文件中不存在该节点名则在%windir%""Framework"v2.0.50727"CONFIG"web.config文件中查找。

(4) 如果在%windir%""Framework"v2.0.50727"CONFIG"web.config文件中不存在相应结点,则在%windir%""Framework"v2.0.50727"CONFIG"machine.config文件中查找。

(5)如果仍然没有找到则返回null。

在应用程序运行过程中,如果web.config文件发生更改就会导致相应的应用程序重新启动,这时存储在服务器内存中的用户会话信息就会丢失(如存储在内存中的Session)。

(一)appSetings配置节点&lt;appSettings&gt;节点主要用来存储应用程序的一些配置信息,比如上传文件的保存路径等&lt;appSettings&gt;&nbsp;&lt;add key="ImageType" value=".jpg;.bmp;.gif;.png;.jpeg"/&gt; &lt;!--允许上传的图片格式类型--&gt;&lt;/appSettings&gt;----------------------------------------------------string fileType=ConfigurationManager.AppSettings["FileType "];(二)&lt;connectionStrings&gt;节点&lt;connectionStrings&gt; 节点主要用于配置数据库连接的,我们可以&lt;connectionStrings&gt;节点中增加任意个节点来保存数据库连接字符串,将来在代码中通过代码的方式动态获取节点的值来实例化数据库连接对象,这样一旦部署的时候数据库连接信息发生变化我们仅需要更改此处的配置即可,而不必因为数据库连接信息的变化而需要改动程序代码和重新部署&lt;connectionStrings&gt;&nbsp;&nbsp;&lt;add name="AspNetStudyConnectionString1" connectionString="Data Source=(local);Initial Catalog=AspNetStudy;User ID=sa;Password=sa"/&gt;&lt;/connectionString&gt;------------------------------------------------------string connectionString = ConfigurationManager.ConnectionStrings["AspNetStudyConnectionString1"].ConnectionString;(三)&lt;compilation&gt;节点&lt;compilation&gt;节点配置 使用的所有编译设置。

web.config配置说明

web.config配置说明

web.config配置说明<configuration>//顶层元素<system.web>//⼤多应⽤程序设置位于此元素下<sessionState mode='Inproc' timeout='10' />//设置会话状态超时时间</system.web></configuration>Table 3-1.可⽤于web.config的顶层配置元素元素Element含义Purpose<authentication>指定所使⽤的客户⾝份验证模式Specify the client authentication mode to use<authorization>允许或者拒绝⽤户或⾓⾊的访问Allow or deny users or roles access<browserCaps>根据⽤户代理指定浏览器的能⼒Specify browser capabilities based on user agent<clientTarget>定义客户⽬标Define client targets<compilation>控制同页编译和程序集引⽤Control page compilation and assembly references<customErrors>控制错误页显⽰和定义⾃定义的错误页Control error page display and define custom error pages<globalization>设置请求和响应的编码Set the request and response encoding<httpHandlers>添加或移除HTTP处理程序Add or remove HTTP handlers<httpModules>添加或移除HTTP模块Add or remove HTTP modules<httpRuntime>控制HTTP请求的处理Control aspects of HTTP request processing<identity>为该应⽤程序指定标识Specify impersonation for this application<machineKey>控制验证和解密的钥匙Control the validation and decryption key<pages>设置全局的⽹页默认属性Set defaults for page attributes globally<processModel>控制⼯作者进程的⾏为⽅式Control the behavior of the worker process<securityPolicy>使⽤相关的策略⽂件定义信任等级Define trust levels with associated policy files<sessionState>控制会话状态Control session state<trace>启⽤应⽤程序范围的跟踪Enable application-wide tracing<trust>选择使⽤的信任等级Select which trust level to use<webServices>指定Web服务的协议和范围Specify Web service protocols and extensions<appSettings>添加应⽤程序专⽤的数据元素Add application-specific data elements1, 配置的四个层次(1)机器:machine.config:位于$FRAMEWORK\CONFIG($FRAMEWORK⼀般是c:\winnt\\Framework\v1.0.3705),是.net必须备的默认配置⽂件。

.NET4.0 配置文件Web.config

.NET4.0  配置文件Web.config

4.0 配置文件Web.config应用程序的配置信息都存放于Web.config配置文件中,Web.config配置文件是基于XML格式的文件类型,由于XML文件的可伸缩性,使得 应用配置变得灵活、高效、容易实现。

同时,不允许外部用户直接通过URL请求访问Web.config,以提高应用程序的安全性。

1.Web.config配置文件的优点Web.config配置文件使得应用程序的配置变得灵活、高效和容易实现,同时Web.config配置文件还为应用提供了可扩展的配置,使得应用程序能够自定义配置,不仅如此,Web.config配置文件还包括以下优点。

●配置设置易读性由于Web.config配置文件是基于XML文件类型,所有的配置信息都存放在XML文本文件中,可以使用文本编辑器或者XML编辑器直接修改和设置相应配置节,相比之下,也可以使用记事本进行快速配置而无需担心文件类型。

●更新的即时性在Web.config配置文件中某些配置节被更改后,无需重启Web应用程序就可以自动更新应用程序配置。

但是在更改有些特定的配置节时,Web应用程序会自动保存设置并重启。

●本地服务器访问在更改了Web.config配置文件后,应用程序可以自动探测到Web.config配置文件中的变化,然后创建一个新的应用程序实例。

当浏览者访问应用时,会被重定向到新的应用程序。

●安全性由于Web.config配置文件通常存储的是应用程序的配置,所以Web.config配置文件具有较高的安全性,一般的外部用户无法访问和下载Web.config配置文件。

当外部用户尝试访问Web.config配置文件时,会导致访问错误。

●可扩展性Web.config配置文件具有很强的扩展性,通过Web.config配置文件,开发人员能够自定义配置节,在应用程序中自行使用。

●保密性开发人员可以对Web.config配置文件进行加密操作而不会影响到配置文件中的配置信息。

web.config 防盗链 规则

web.config 防盗链 规则

1. 介绍web.config文件在开篇,先介绍一下web.config文件的作用和重要性。

可以简单解释一下web.config文件是用来配置应用程序的,其中包含了应用程序的设置、连接字符串、认证、授权和其他的一些设置。

这是全球信息湾的核心配置文件,对全球信息湾的运行有着至关重要的作用。

2. 基本防盗链规则可以开始介绍web.config中的防盗链规则。

防盗链规则是为了保护全球信息湾资源不被盗链的一种设置方法。

可以从最基本的防盗链规则开始,如只允许特定的域名访问全球信息湾资源,拒绝其他非法域名的访问。

在web.config文件中,可以通过编写一些规则来实现基本的防盗链功能。

3. 进阶防盗链规则在介绍完基本的防盗链规则后,可以逐步引入进阶的防盗链规则。

可以介绍如何根据HTTP的Referer头信息来进行防盗链设置,或者如何对特定类型的资源进行防盗链限制。

可以深入讲解web.config文件中的具体设置和语法,以及这些设置对防盗链功能的实际影响。

4. 实际操作和案例分析在文章的中段可以涉及一些实际操作和案例分析,例如通过在web.config文件中添加特定的防盗链规则,来实现对全球信息湾资源的保护。

可以列举一些常见的情况和问题,并给出针对性的解决方案。

也可以共享一些自己在实践中的经验和教训。

5. 个人观点和总结可以共享一下对web.config防盗链规则的个人观点和理解。

可以谈谈对这种防盗链方法的认识,以及在实际运用中的一些注意事项和建议。

做一下全文的总结和回顾,概括一下web.config防盗链规则的重要性和实际应用。

通过以上的写作思路,可以以比较系统和有条理的方式,完成一篇内容丰富、观点清晰的web.config防盗链规则文章,达到提高文化识别训练的效果。

Web.config文件是应用程序的核心配置文件,用于配置全球信息湾的设置、连接字符串、认证、授权和其他重要设置。

其中,防盗链规则是保护全球信息湾资源不被盗链的一种重要设置。

web.config详解(配置文件节点说明)

web.config详解(配置文件节点说明)

web.config详解(配置文件节点说明)Posted on 2009-02-15 20:50 Charles Chen阅读(625) 评论(0)编辑收藏所属分类: Web.config深入浅出, web.config文件是一个XML文件,它的根结点是<configuration>,在<configuration>节点下的常见子节点有:<configSections>、<appSettings>、<connectionStrings>和<system.web>。

其中<appSettings>节点主要用于配置一些网站的应用配置信息,而<connectionStrings>节点主要用于配置网站的数据库连接字符串信息。

<system.web>节点主要是网站运行时的一些配置,它的常见节点有如下:1.<appSettings>节点<appSettings>节点主要用来存储应用程序的一些配置信息2.<compilation>节点<compilation>节点配置 使用的所有编译设置。

默认的debug属性为“true”,即允许调试,在这种情况下会影响网站的性能,所以在程序编译完成交付使用之后应将其设为“false”。

3.<authentication>节点设置身份验证模式,有四种身份验证模式,它们的值分别如下:Mode 说明Windows 使用Windows身份验证,适用于域用户或者局域网用户。

Forms 使用表单验证,依靠网站开发人员进行身份验证。

Passport 使用微软提供的身份验证服务进行身份验证。

None 不进行任何身份验证。

4.<customErrors>节点<customErrors>节点用于定义一些自定义错误信息的信息。

对Web.config配置文件的常见操作-洞幺人生-博客园

对Web.config配置文件的常见操作-洞幺人生-博客园

对Web.config配置⽂件的常见操作-洞⼳⼈⽣-博客园对Web.config配置⽂件的常见操作对于配置⽂件的常见操作包括:l 读取l 修改l 将web.config中的配置节放在单独的⽂件中l 对某⼀节进⾏加密l 添加定制的节操作web配置⽂件(包括machine.config和web.config等)的命名空间是:System.Web.Configuration。

主要应⽤的类是:WebConfigurationManager。

下⾯看看WebConfigurationManager类的成员。

(可以利⽤MSDN来查看,我下⾯是利⽤Lutz Roeder的Reflector)图 1 WebConfigurationManager类成员3.2.1 读取图 2 WebConfigurationManager类中⽤于读取的属性和⽅法3.2.1.1 读取appSettings节和connectionStrings节在WebConfigurationManager类中,我们⾸先注意到其两个属性AppSettings和ConnectionStrings。

这两个属性就是⽤于操作我们前⾯看到的web.config⽂件中的两节appSettings和connectionStrings。

下⾯演⽰使⽤⽅法。

演⽰操作appSettings 节的代码:using System.Web.Configuration;....string message;message = WebConfigurationManager.AppSettings["message"];...演⽰操作connectionStrings节的代码:using System.Web.Configuration;....string connectionString =WebConfigurationManager.ConnectionStrings["pubs"].ConnectionString;...3.2.1.2 读取其它节在.NET中读取其它节要⿇烦⼀些。

Web.config配置文件详解

Web.config配置文件详解

花了点时间整理了一下 Web.config配置文件的基本使用方法。

很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点。

所以这里只介绍一些比较常用的节点。

<?xml version="1.0"?><!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置。

可以使用 Visual Studio 中的“网站”->“ 配置”选项。

设置和注释的完整列表在 ments 中,该文件通常位于"Windows""Framework"v2.x"Config 中。

--><!--Webconfig文件是一个xml文件,configuration是xml文件的根节点,由于xml文件的根节点只能有一个,所以Webconfig的所有配置都是在这个节点内进行的。

--><configuration><!--指定配置节和命名空间声明。

clear:移除对继承的节和节组的所有引用,只允许由当前 section 和 sectionGroup 元素添加的节和节组。

remove:移除对继承的节和节组的引用。

section:定义配置节处理程序与配置元素之间的关联。

sectionGroup:定义配置节处理程序与配置节之间的关联。

--><configSections><sectionGroup name="system.web.extensions"type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"><sectionGroup name="scripting"type="System.Web.Configuration.ScriptingSectionGroup,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"><section name="scriptResourceHandler"type="System.Web.Configuration.ScriptingScriptResourceHandlerS ection, System.Web.Extensions, Version=1.0.61025.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"allowDefinition="MachineToApplication"/></sectionGroup></sectionGroup><section name="rewriter"type="Intelligencia.UrlRewriter.Configuration.RewriterConfigur ationSectionHandler, Intelligencia.UrlRewriter"/></configSections><!--appSettings是应用程序设置,可以定义应用程序的全局常量设置等信息--><appSettings><add key="1"value="1"/><add key="gao"value="weipeng"/></appSettings><!--连接字符串设置--><connectionStrings><add name="ConnString"connectionString="DataSource=GAO;Initial Catalog=HBWXDate;UserID=sa;password=sa"></add><add name="111"connectionString="11111"/></connectionStrings><!--指定应用子配置设置的资源,并锁定配置设置,以防止它们被子配置文件重写。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ipconfig详解:web.config详解疯狂代码 / ĵ:http://DotNet/Article22869.html在开发中经常会遇到这样情况在部署时为了保密起见并不将源代码随项目同发布而我们开发时环境和部署环境可能不致(比如数据库不样)如果在代码中保存这些配置这些信息部署时需要到用户那里更改代码再重新编译这种部署方式非常麻烦在.net中提供了种便捷保存项目配置信息办法那就是利用配置文件配置文件文件后缀般是.config在中配置文件名般默认是web.config每个web.config文件都是基于XML文本文件并且可以保存到Web应用中任何目录中在发布Web应用时web.config文件并不编译进dll文件中如果将来客户端发生了变化仅仅需要用记事本打开web.config文件编辑相关设置就可以重新正常使用非常方便本篇要讲述知识如下:配置文件查找优先级配置文件查找优先级在.net提供了个针对当前机器配置文件这个文件是machine.config它位于%windir%\\Framework\v2.0.50727\CONFIG\文件下(%windir%是系统分区下系统目录在命令行模式下输入%windir%然后回车就能查看当前机器系统目录在Windows2003及WindowsXP中%windir%是系统分区下windows目录在Windows2000中%windir%是系统分区下WinNT目录在笔者机器上这个系统目录是C:\WINDOWS)这个文件里面定义了针对当前机器WinForm和应用配置下面是machine.config文件内容:在这个文件夹下还有个web.config文件这个文件包含了网站WebSite常用配置下面是这个web.config文件内容:网站WebSiteIIS启动时候会加载配置文件中配置信息然后缓存Cache这些信息这样就不必每次去读取配置信息在运行过程中应用会监视配置文件变化情况旦编辑了这些配置信息就会重新读取这些配置信息并缓存Cache当我们要读取某个节点或者节点组信息时是按照如下方式搜索:(1)如果在当前页面所在目录下存在web.config文件查看是否存在所要查找结点名称如果存在返回结果并停止查找(2)如果当前页面所在目录下不存在web.config文件或者web.config文件中不存在该结点名则查找它上级目录直到网站WebSite根目录(3)如果网站WebSite根目录下不存在web.config文件或者web.config文件中不存在该节点名则在%windir%\\Framework\v2.0.50727\CONFIG\web.config文件中查找(4)如果在%windir%\\Framework\v2.0.50727\CONFIG\web.config文件中不存在相应结点则在%windir%\\Framework\v2.0.50727\CONFIG\machine.config文件中查找(5)如果仍然没有找到则返回null所以如果我们对某个网站WebSite或者某个文件夹有特定要求配置可以在相应文件夹下创建个web.config文件覆盖掉上级文件夹中web.config文件中同名配置即可这些配置信息寻找只查找次以后便被缓存Cache起来供后来在应用运行过程中如果web.config文件发生更改就会导致相应应用重新启动这时存储在服务器内存中用户会话信息就会丢失(如存储在内存中Session)些软件Software(如杀毒软件Software)每次完成对web.config访问时就会修改web.config访问时间属性也会导致应用重启配置文件节点介绍说明web.config文件是个XML文件它根结点是<configuration>在<configuration>节点下常见子节点有:<configSections>、<appSettings>、<connectionStrings>和<system.web>其中<appSettings>节点主要用于配置些网站WebSite应用配置信息而<connectionStrings>节点主要用于配置网站WebSite数据库连接串信息<system.web>节点主要是网站WebSite运行时些配置它常见节点有如下:<appSettings>节点<appSettings>节点主要用来存储应用些配置信息比如上传文件保存路径等以下是个例子:<appSettings><!--允许上传图片格式类型--><add key="ImageType" value=".jpg;.bmp;.g;.png;.jpeg"/><!--允许上传文件类型--><add key="FileType" value=".jpg;.bmp;.g;.png;.jpeg;.pdf;.zip;.rar;.xls;.doc"/></appSettings>对于<appSettings>节点中值可以按照key来进行访问以下就是个读取key值为“FileType”节点值例子:fileType=ConfigurationManager.AppSettings["FileType "];<connectionStrings>节点<connectionStrings>节点主要用于配置数据库连接我们可以<connectionStrings>节点中增加任意个节点来保存数据库连接串将来在代码中通过代码方式动态获取节点值来例子化数据库连接对象这样旦部署时候数据库连接信息发生变化我们仅需要更改此处配置即可而不必数据库连接信息变化而需要改动代码和重新部署以下就是个<connectionStrings>节点配置例子:<connectionStrings><!--SQL Server数据库配置--><add name="AspNetStudyConnectionString1" connectionString="Data Source=(local);Initial Catalog=AspNetStudy;User ID=sa;Password=sa"/></connectionStrings>在代码中我们可以这么例子化数据库连接对象://读取web.config节点配置connectionString =ConfigurationManager.ConnectionStrings["AspNetStudyConnectionString1"].ConnectionString;//例子化SqlConnection对象SqlConnection connection = SqlConnection(connectionString);这样做好处是旦开发时所用数据库和部署时数据库不致仅仅需要用记事本的类文本编辑工具编辑connectionString属性值就行了<compilation>节点<compilation>节点配置 使用所有编译设置默认debug属性为“true”即允许调试在这种情况下会影响网站WebSite性能所以在编译完成交付使用的后应将其设为“false”<authentication>节点设置身份验证模式有 4种身份验证模式它们值分别如下:Mode 介绍说明Windows 使用Windows身份验证适用于域用户或者局域网用户Forms 使用表单验证依靠网站WebSite开发人员进行身份验证Passport 使用微软提供身份验证服务进行身份验证None 不进行任何身份验证<authentication>节点<authentication>节点控制用户对网站WebSite、目录或者单独页访问必须配合<authentication>节点起使用<customErrors>节点<customErrors>节点用于定义些自定义信息信息此节点有Mode和defaultRedirect两个属性其中defaultRedirect属性是个可选属性表示应用发生时重定向到默认URL如果没有指定该属性则显示般性Mode属性是个必选属性它有 3个可能值它们所代表意义分别如下:Mode 介绍说明On 表示在本地和远程用户都会看到自定义信息Off 禁用自定义信息本地和远程用户都会看到详细信息RemoteOnly 表示本地用户将看到详细信息而远程用户将会看到自定义信息这里有必要介绍说明下本地用户和远程用户概念当我们访问应用程时所使用机器和发布应用所使用机器为同台机器时成为本地用户反的则称的为远程用户在开发调试阶段为了便于查找Mode属性建议设置为Off而在部署阶段应将Mode属性设置为On或者RemoteOnly以避免这些详细信息暴露了代码细节从而引来黑客入侵下面我们添加个页面CustomErrorsDemo.aspx在它Page_Load事件里抛出个异常代码如下:using ;using .Data;using .Configuration;using .Collections;using .Web;using .Web.Security;using .Web.UI;using .Web.UI.WebControls;using .Web.UI.WebControls.WebParts;using .Web.UI.HtmlControls;public partial CustomErrorsDemo : .Web.UI.Page{protected void Page_Load(object sender, EventArgs e){throw Exception("故意抛出异常");}}我们先配置<customErrors>如下:<customErrors mode="RemoteOnly"><error statusCode="403" redirect="NoAccess.htm" /><error statusCode="404" redirect="FileNotFound.htm" /></customErrors>这时本地运行CustomErrorsDemo.aspx效果如下:远程访问时看到效果:如果我们将customErrorsMode属性设置为“On”本地运行和远程访问都会看到如下效果:如果将customErrorsMode属性设置为“Off”本地运行和远程访问都会看到如下效果:<error>子节点在<customErrors>节点下还包含有<error>子节点这个节点主要是根据服务器HTTP状态代码而重定向到我们自定义页面注意要使<error>子节点下配置生效必须将<customErrors>节点节点Mode属性设置为“On”下面是个例子:<customErrors mode="On" defaultRedirect="GenericErrorPage.htm"><error statusCode="403" redirect="403.htm" /><error statusCode="404" redirect="404.htm" /></customErrors>在上面配置中如果用户访问页面不存在就会跳转到404.htm页面如果用户没有权限访问请求页面则会跳转到403.htm页面403.htm和404.htm页面都是我们自己添加页面我们可以在页面中给出友好提示<httpHandlers>节点<httpHandlers>节点用于根据用户请求URL和HTTP谓词将用户请求交给相应处理可以在配置级别任何层次配置此节点也就是说可以针对某个特定目录下指定特殊文件进行特殊处理下面是和machine.config文件同目录下web.config文件中<httpHandlers>节点配置:<httpHandlers><add path="*.rules" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.xoml" verb="*" type=".ServiceModel.Activation.HttpHandler, .ServiceModel,Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/><add path="trace.axd" verb="*" type=".Web.Handlers.TraceHandler" validate="true"/><add path="WebResource.axd" verb="GET" type=".Web.Handlers.AssemblyResourceLoader" validate="true"/><add path="*.axd" verb="*" type=".Web.HttpNotFoundHandler" validate="true"/><add path="*.aspx" verb="*" type=".Web.UI.PageHandlerFactory" validate="true"/><add path="*.ashx" verb="*" type=".Web.UI.SimpleHandlerFactory" validate="true"/><add path="*.asmx" verb="*" type=".Web.Services.Protocols.WebServiceHandlerFactory,.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"validate="false"/><add path="*.rem" verb="*" type=".Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, .Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"validate="false"/><add path="*.soap" verb="*" type=".Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, .Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"validate="false"/><add path="*.asax" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.ascx" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.master" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.skin" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.browser" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.sitemap" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.dll.config" verb="GET,HEAD" type=".Web.StaticFileHandler" validate="true"/><add path="*.exe.config" verb="GET,HEAD" type=".Web.StaticFileHandler" validate="true"/><add path="*.config" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.cs" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.csproj" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.vb" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.vbproj" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.webinfo" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.licx" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.resx" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.resources" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.mdb" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.vjsproj" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.java" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.jsl" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.ldb" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.ad" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.dd" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.ldd" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.sd" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.cd" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.adprototype" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.lddprototype" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.sdm" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.sdmDocument" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.mdf" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.ldf" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.exclude" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.refresh" verb="*" type=".Web.HttpForbiddenHandler" validate="true"/><add path="*.svc" verb="*" type=".ServiceModel.Activation.HttpHandler, .ServiceModel,Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/><add path="*" verb="GET,HEAD,POST" type=".Web.DefaultHttpHandler" validate="true"/><add path="*" verb="*" type=".Web.HttpMethodNotAllowedHandler" validate="true"/></httpHandlers>从上面配置中可以看出针对*.mdf、*.ldf文件Get或者Post请求都会交给.Web.HttpForbiddenHandler来处理处理结果就是用户不能查看或者下载相关文件如果我们某个文件夹下文件或者某个类型文件不允许用户下载可以在</httpHandlers>节点中增加相应子节点下面我们以个例子来介绍说明<httpHandlers>节点使用方法在我们应用中建立个IPData目录在IPData目录中创建个IPData.txt文件然后在Web.config中添加以下配置:<httpHandlers><add path="IPData/*.txt" verb="*" type=".Web.HttpForbiddenHandler"/></httpHandlers>上面代码作用是禁止访问IPData目录下任何txt文件然后新建个页面在页面中添加个超级链接链接到该目录下IPData.txt文件代码如下:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="HttpHandlersDemo.aspx.cs" Inherits="HttpHandlersDemo" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" ><head runat="server"><title>httpHandlers节点例子</title></head><body><form id="form1" runat="server"><div><a href="IPData/IPData.txt" title="打开IPData/IPData.txt">打开IPData/IPData.txt</a></div></form></body></html>运行这个页面效果如下:当前web.config文件<customErrors>节点配置如下:<customErrors mode="On" defaultRedirect="GenericErrorPage.htm"><error statusCode="403" redirect="403.htm" /><error statusCode="404" redirect="404.htm" /></customErrors>如果存在403.htm和404.htm页面点击超级链接的后会出现如下效果:我们从上图中可以看到当<customErrors>节点Mode属性为“On”时被禁止访问IPData文件夹下所有txt文件所以会跳转到自定义没有权限提示页面即403.htm<httpRuntime>节点<httpRuntime>节点用于对 HTTP 运行库设置该节可以在计算机、站点、应用和子目录级别声明 例如下面配置控制用户最大能上传文件为40M(40*1024K)最大超时时间为60秒最大并发请求为100个<httpRuntime maxRequestLength="40960" executionTimeout="60" appRequestQueueLimit="100"/><pages>节点<pages>节点用于表示对特定页设置主要有 3个属性分别如下:属性名 介绍说明buffer 是否启用了 HTTP 响应缓冲enableViewStateMac 是否应该对页视图状态运行计算机身份验证检查 (MAC)以放置用户篡改默认为false如果设置为true将会引起性能降低validateRequest 是否验证用户输入中有跨站点脚本攻击和SQL注入式漏洞攻击默认为true如果出现匹配情况就会发 HttpRequestValidationException 异常对于包含有在线文本编辑器页面般自行验证用户输入而将此属性设为false下面就是个配置节点例子:<pages buffer="true" enableViewStateMac="true" validateRequest="false"/><sessionState>节点<sessionState>节点用于配置当前应用会话状态配置以下就是个常见配置:<sessionState cookieless="false" mode="InProc" timeout="30" />上面节点配置是设置在应用中启用Cookie并且指定会话状态模式为在进程中保存会话状态同时还指定了会话超时为30分钟<sessionState>节点Mode属性可以是以下几种值的:属性值 介绍说明Custom 使用自定义数据来存储会话状态数据InProc 默认值由辅助进程来存储会话状态数据Off 禁用会话状态SQLServer 使用进程外SQL Server数据库保存会话状态数据StateServer 使用进程外 状态服务存储状态信息般默认情况下使用InProc模式来存储会话状态数据这种模式好处是存取速度快缺点是比较占用内存所以不宜在这种模式下存储大型用户会话数据<globalization>节点:用于配置应用全球化设置此节点有几个比较重要属性分别如下:属性名 介绍说明fileEncoding 可选属性设置.aspx、.asmx 和 .asax 文件存储编码requestEncoding 可选属性设置客户端请求编码默认为UTF-8.responseEncoding 可选属性设置服务器端响应编码默认为UTF-8.以下就是应用中默认配置:<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8"/>配置文件读写操作虽然web.config文件是个XML文件但是由于权限原因它在部署中不能像操作普通XML文件那样进行修改在.net中提供了个类用于对web.config进行修改下面是针对web.config修改通用类代码:using ;using .Configuration;using .Web;using .Web.Configuration;/// <summary>/// ConfigurationOperator 摘要介绍说明/// </summary>public ConfigurationOperator:IDisposable{private Configuration config;public ConfigurationOperator:this(HttpContext.Current.Request.ApplicationPath){}public ConfigurationOperator( path){config = WebConfigurationManager.OpenWebConfiguration(path);}/// <summary>/// 设置应用配置节点如果已经存在此节点则会修改该节点值否则添加此节点/// </summary>/// <param name="key">节点名称</param>/// <param name="value">节点值</param>public void SetAppSetting( key, value){AppSettingsSection appSetting = (AppSettingsSection)config.GetSection("appSettings"); (appSetting.Settings[key] null)//如果不存在此节点则添加{appSetting.Settings.Add(key, value);}//如果存在此节点则修改{appSetting.Settings[key].Value = value;}}/// <summary>/// 设置数据库连接串节点如果不存在此节点则会添加此节点及对应值存在则修改/// </summary>/// <param name="key">节点名称</param>/// <param name="value">节点值</param>public void SetConnectionString( key, connectionString){ConnectionStringsSection connectionSetting =(ConnectionStringsSection)config.GetSection("connectionStrings");(connectionSetting.ConnectionStrings[key] null)//如果不存在此节点则添加{ConnectionStringSettings connectionStringSettings = ConnectionStringSettings(key, connectionString);connectionSetting.ConnectionStrings.Add(connectionStringSettings);}//如果存在此节点则修改{connectionSetting.ConnectionStrings[key].ConnectionString = connectionString;}}/// <summary>/// 保存所作修改/// </summary>public void Save{config.Save;config = null;}public void Dispose{(config != null){config.Save;}}}把上面代码存放到App_Code文件夹下我们在项目中就可以直接使用了我们通过个例子演示如果使用这个通用类对web.config进行设置新建个aspx页面下面是前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ConfigModyDemo.aspx.cs" Inherits="ConfigModyDemo" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" ><head runat="server"><title>在部署后修改web.config例子</title></head><body><form id="form1" runat="server"><div><table border="0" cellpadding="0" cellspacing="0"><tr><td>类型</td><td>名称</td><td>值</td></tr><tr><td>配置</td><td><asp:TextBox ID="txtKey" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtKey"ErrorMessage="*" Display="Dynamic"></asp:RequiredFieldValidator></td><td><asp:TextBox ID="txtAppSetting" runat="server"></asp:TextBox></td></tr><tr><td>数据库连接</td><td><asp:TextBox ID="txtConnectionName" runat="server"></asp:TextBox><asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*" ControlToValidate="txtConnectionName"Display="Dynamic"></asp:RequiredFieldValidator></td><td style="height: 24px"><asp:TextBox ID="txtConnectionString" runat="server"></asp:TextBox></td></tr> <tr><td><asp:Button ID="btnMody" runat="server" _disibledevent=></table></div></form></body></html>编写后台代码有时可能需要增加对配置文件读写操作类所在dll引用如下:下面是后台代码:using ;using .Data;using .Configuration;using .Collections;using .Web;using .Web.Security;using .Web.UI;using .Web.UI.WebControls;using .Web.UI.WebControls.WebParts;using .Web.UI.HtmlControls;using .Web.Configuration;//注意添加这个命名空间public partial ConfigModyDemo : .Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void btnMody_Click(object sender, EventArgs e){appSetting = txtAppSetting.Text;//appSetting子节点值connectionString = txtConnectionString.Text;//连接串key = txtKey.Text;//appSetting子节点KeyconnectionName = txtConnectionName.Text;//连接NameConfigurationOperator op = ConfigurationOperator;op.SetAppSetting(key, appSetting);op.SetConnectionString(connectionName, connectionString);op.Save;}}下面是运行界面:我们在上面表单中填入如下信息:假设此时web.config文件相关节点内容如下:<appSettings></appSettings><connectionStrings><add name="Conn" connectionString="Data Source=(local);Initial Catalog=AspNetStudy;Persist Security Info=True;User ID=sa;Password=sa" /></connectionStrings>我们点击“修改”按钮的后文件内容如下:<appSettings><add key="country" value="china" /></appSettings><connectionStrings><add name="Conn" connectionString="Data Source=(local);Initial Catalog=Study;UserID=sa;Password=sa"providerName=".Data.SqlClient" /></connectionStrings>从执行结果可以看出我们确实能做到修改和添加web.config中节点功能需要注意是在利用了某些版本控制软件Software的后(如Microsoft Visual SourceSafe)版本控制软件Software可能会将web.config设置为只读属性就会出现不能设置情况我们需要手动将web.config只读属性去掉才能设置web.config文件在实际部署项目时候就不会存在这个问题整理总结:web.config是应用中个很重要配置文件通过web.config文件可以方便我们进行开发和部署应用此外还能对进行些灵活控制在本篇中详细讲述了各节点作用在部署应用后权限原因不能按照XML方式进行修改web.config文件所以在本篇中还提供了个针对<appSettings>节点和<connectionStrings>节点设置通用类读者朋友可以根据实际项目需要对这个通用类进行完善和补充下篇笔者将带领大家进入到内部了解下内部运行机制这对于我们更加灵活地控制应用是非常有帮助2008-11-5 01:47周公(周金桥)最近事情比较多忙不过来了可能发表时间会比较长不过也好能有时间让我再研究下我表述方式2009-2-12 5:17:12疯狂代码 /。

相关文档
最新文档