asp教程.net web.config 配置文件节点说明
web.config文件是一个xml文本文件,它用来储存 asp.net教程 web 应用程序的配置信息(如最常用的设置asp.net web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过vb.net新建一个web应用程序后,默认情况下会在根目录自动创建一个默认的 web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。 在运行时对web.config文件的修改不需要重启服务就可以生效(注:<processmodel> 节例外)。当然web.config文件是可以扩展的。你可以自定义新配置参数并编写配置节处理程序以对它们进行处理。
web.config文件是一个xml文件,它的根结点是
1.
2.
3.
4.
5.
6.
对于
1.string filetype=configurationmanager.appsettings["filetype "];
设置asp.net身份验证模式,有四种身份验证模式,它们的值分别如下:
mode 说明
windows 使用windows身份验证,适用于域用户或者局域网用户。
forms 使用表单验证,依靠网站开发人员进行身份验证。
passport 使用微软提供的身份验证服务进行身份验证。
none 不进行任何身份验证。
mode 说明
on 表示在本地和远程用户都会看到自定义错误信息。
off 禁用自定义错误信息,本地和远程用户都会看到详细的错误信息。
remoteonly 表示本地用户将看到详细错误信息,而远程用户将会看到自定义错误信息。
这里有必要说明一下本地用户和远程用户的概念。当我们访问asp.net应用程时所使用的机器和发布asp.net应用程序所使用的机器为同一台机器时成为本地用户,反之则称之为远程用户。在开发调试阶段为了便于查找错误mode属性建议设置为off,而在部署阶段应将mode属性设置为on或者 remoteonly,以避免这些详细的错误信息暴露了程序代码细节从而引来黑客的入侵。
在
1.
2.
3.
4.
在上面的配置中如果用户访问的页面不存在就会跳转到404.htm页面,如果用户没有权限访问请求的页面则会跳转到403.htm页面,403.htm和404.htm页面都是我们自己添加的页面,我们可以在页面中给出友好的错误提示。
例如下面的配置控制用户最大能上传的文件为40m(40*1024k),最大超时时间为60秒,最大并发请求为100个。
属性名 说明
buffer 是否启用了 http 响应缓冲。
enableviewstatemac 是否应该对页的视图状态运行计算机身份验证检查 (mac),以放置用户篡改,默认为false,如果设置为true将会引起性能的降低。
validaterequest 是否验证用户输入中有跨站点脚本攻击和sql注入式漏洞攻击,默认为true,如果出现匹配情况就会发 httprequestvalidationexception 异常。对于包含有在线文本编辑器页面一般自行验证用户输入而将此属性设为false。
下面就是一个配置节点的例子:
1.
1.
上面的节点配置是设置在asp.net应用程序中启用cookie,并且指定会话状态模式为在进程中保存会话状态,同时还指定了会话超时为30分钟。
属性值 说明
custom 使用自定义数据来存储会话状态数据。
inproc 默认值。由asp.net辅助进程来存储会话状态数据。
off 禁用会话状态。
sqlserver 使用进程外sql server数据库保存会话状态数据。
stateserver 使用进程外 asp.net 状态服务存储状态信息。
一般默认情况下使用inproc模式来存储会话状态数据,这种模式的好处是存取速度快,缺点是比较占用内存,所以不宜在这种模式下存储大型的用户会话数据。
用于配置应用程序的全球化设置。此节点有几个比较重要的属性,分别如下:
属性名 说明
fileencoding 可选属性。设置.aspx、.asmx 和 .asax 文件的存储编码。
requestencoding 可选属性。设置客户端请求的编码,默认为utf-8.
responseencoding 可选属性。设置服务器端响应的编码,默认为utf-8.
以下就是asp.net应用程序中的默认配置:
1.
自定义web.config文件配置节过程分为两步。 一是在在配置文件顶部 <configsections> 和 </configsections>标记之间声明配置节的名称和处理该节中配置数据的 .net framework 类的名称。 二是在 <configsections> 区域之后为声明的节做实际的配置设置。 示例:创建一个节存储数据库连接字符串 <configuration> <configsections> <section name="appsettings" type="system.configuration.namevaluefilesectionhandler, system, version=1.0.3300.0, culture=neutral, publickeytoken=b77a5c561934e089"/> </configsections> <appsettings> <add key="scon" value="server=a;database=northwind;uid=sa;pwd=123"/> </appsettings> <system.web> ...... </system.web> </configuration>