【asp源码栏目提醒】:网学会员在asp源码频道为大家收集整理了“ASP NET中Web应用程序配置文件的研究及应用 - 计算机教材“提供大家参考,希望对大家有所帮助!
ASP.NET中Web应用程序配置文件的研究及应用开发研究与设计技术 郝 森 朱战立 约4056字 摘要Web.config文件是位于
ASP.NET应用程序虚目录根下的一个配置文件。
应用程序中的所有网页和目录都使用该文件中的配置设置。
ASP.NET中的配置文件采用了标准的XML文件格式通过这个文件不仅可以更改应用程序设置还可以用来设置策略以改变程序的运行方式无需重新编译和部署该应用以适应新的服务器要求。
在介绍了使用Web.config作为配置文件的优点的基础之上着重阐述了使用配置文件对常量数据、全局信息以及其他常用设定进行配置并且讨论了一些安全使用配置文件的方法。
关键词
ASP.NETWeb.config常量配置进程模型信息保护 中图分类号TP311文献标识码A文章编号1009-3044200716-31045-01 Research and Application for
ASP.NET Web Application Configuration File HAO SenZHU Zhan-li School of Computer Science Xi39an Shiyou University Xi39an 710065 China Abstract:Web.config file is a configuration file located in
ASP.NET application39s virtual root directory.All the pages and directories of the application can be configured by this file.The configuration files of
ASP.NET using a standard XML file formatthe adoption of these files will not only change application configuration but also used to setting strategies to change the operation method of program needn39t to reedit and redeploy this application in order to adapt the new server requirements. Based on the introduction of the advantages of using Web.config as configuration file this paper emphasizes the using of configuration file to setting constant data global information and other commonly function.And then discuss some security methods of using configuration file. Key words:
ASP.NETWeb.configconstant configurationprocessModelinformation protection 1 引 言 在
ASP.NET中为了与xcopy部署的目标保持一致采用了一个名为Web.config的XML文件指定
ASP.NET应用程序的配置。
该文件放置在应用程序虚根的顶端使用的配置布局与所有.NET应用程序所用的配置布局是相同的。
也就是说当我们通过.NET新建一个Web应用程序的时候默认情况下会在根目录自动创建一个Web.config文件包括了默认的配置设置所有的子目录都继承它的配置设置。
这种利用纯文本格式来存放配置信息的做法的一大优点就是非常容易部署只要将新版本的文本文件复制到服务器上即可
ASP.NET会自动根据时间戳的改变来加载最新的设置。
2 常量数据配置 默认生成的Web.config文件是一个标准的XML格式文件。
该文件包含一个名为configuration的根元素。
要想发挥出配置文件的强大功能就需要添加一些常量数据比如说数据库的连接字符串以及影响应用程序外观的设置等等。
在
ASP.NET中提供了一个叫做appSettings的元素专门用于存放常量数据。
在这个元素下还可以添加一个叫做add的子元素该子元素包括了两个属性key和value。
通过这两个属性我们就可以记录常量信息了比如要记录数据库的连接信息就可以这样做 在上面的例子中不仅记录了数据库的位置信息还包括了登陆名和用户密码。
那么要想在应用程序中访问这个信息可以采用ConfigurationSettings类该类提供一个名为AppSettings的静态索引器可以读取appSettings元素中的值然后用一个字符串来接收就可以了程序如下 String conn ConfigurationSettings.AppSettings34SqlServerConnection34 利用这种方式存放少量的静态数据就变得简单了我们就不需要再用数据库或文本文件来存放数据了。
相比数据库和文本文件在内存中加载配置文件也更加高效而且一旦加载就无需再访问文件了。
另外应用程序中的所有网页和对象都可以共享这些常量数据。
3 进程模型配置 进程模型processModel元素是配置文件中另一个重要的元素。
特别要说明的是要是对该元素进行修改必须要等到重新启动进程之后才能生效。
该元素可以对
ASP.NET中工作进程的各方面进行控制包括进程的生命期、每次创建的实例数、以何种安全标示运行等。
进程模型元素也可以对CPU的使用进行控制比如在使用双核主板时指定使用哪一个CPU工作这时需要将WebGarden设置为true。
如果使用了该属性那么工作进程之间也就不能够再共享会话状态、应用程序状态和全局数据缓存了。
此外processModelInfo类中还提供了两个方法用来获取当前工作进程的信息包括工作进程使用内存的情况、进程的ID号、启动的时间、状态等等。
进程模型支持两种类型的回收主动型和被动型。
主动型进程回收会周期性的重启工作进程不管进程运行的状况如何而被动型进程回收则是在进程无法正常工作或不能处理请求时才会发生通常是遇到了死锁、访问冲突或内存泄漏等问题。
4 常用设定说明 authentication区段设置。
用于配置
ASP.NET 身份验证支持该元素只能在计算机、站点或应用程序级别声明。
常用的属性有mode这是个枚举类型的元素选项有Windows表示将windows验证指定为默认的身份验证模式Forms表示将
ASP.NET基于窗 体的身份验证指定为默认的身份验证模式Passport表示将Microsoft Passport身份验证指定为默认的验证模式None表示不指定任何身份验证。
globalization区段设置。
用于配置应用程序的全球化设置比如设定程序默认的文件编码、请求和相应的编码方式以及日期格式等等如果这些信息不正确配置的会直接导致页面的显示是否出现乱码或异常。
常用的属性有requestEncoding指定每一传入请求的假定的编码包括已传递的数据和查询字符串默认编码为 UTF-8如果在 Machine.config 或 Web.config 文件中未指定请求编码则编码默认为该计算机的区域选项区域设置responseEncoding指定响应的内容编码默认编码为 UTF-8在通常情况下requestEncoding 和 responseEncoding 应该是相同的fileEncoding指定扩展名 .aspx、.asmx 和 .asax 文件默认的编码方式culture为处理传入的 Web 请求指定默认的区域性。
sessionState区段设置。
用于设定Session状态管理属于的子标记。
常用的属性有modeSession状态存储的位置可以是off、InProc、StateServer和SqlServercookieless是否使用Cookie存储Session状态True表示不使用False表示使用timeout指定在放弃一个会话前该会话可以处于空闲状态的分钟数默认值为20分钟sqlConnectionString给SQL Server指定连接字符串当mode属性为SQLServer时该属性是必需的。
compilation区段设置。
用于配置
ASP.NET 使用的所有编译设置。
常用的属性有debug指定是编译 Release 二进制文件还是编译 Debug 二进制文件默认值为 falsedefaultLanguage指定要在动态编译文件中使用的默认编程语言例如“C”或“VB”等默认值是“VB” explicit: 指示 Microsoft Visual Basic explicit 编译选项的设置默认值为 true。
batch指示支持批处理true表示支持false表示不支持batchTimeout指示批处理编译的超时期限单位为秒。
5 信息保护 保存在Web.config文件中的内容都是可读文本那么如何来保证这些敏感信息的安全就是一件非常重要的事了。
比如说如果有人通过读取配置文件中的数据库连接字符串从而连接到Web服务器上进行恶意攻击那么后果是不堪设想的。
一般说来要想保持Web.config文件中的信息对应用程序最为有效而且要使除了应用程序之外的任何人都不能读取该信息有两种做法第一种也是最简洁有效的不要将敏感信息真正保存到Web.config文件里保存到注册表中是相对安全的。
第二种就是加密所谓加密就是对配置文件中的字符串数据进行加密然后在应用程序运行时再解密。
在
ASP.NET2.0中有一个新的安全特性可以对Web.config文件中的所有配置进行加密处理。
这种加密可以通过手工运行aspnet_regiis工具或者用编程的方法来完成这个工作。
加密后的配置信息使攻击者无法获取敏感信息的访问即便是获取了对配置文件的访问从而保证了应用程序的安全使用。
6 结束语 在
ASP.NET中采用了Web.config文件进行各种常量和参数的配置只要把配置文件复制到服务器上就可以改变配置取代了IIS中元数据库的作用。
这种可扩展的基础结构是
ASP.NET配置系统的一大特色并且这些配置可以随时进行添加或修改。
在
ASP.NET的应用程序服务器上多个目录中可以拥有多个配置文件它们的名称都是Web.config每个文件的配置信息都只影响它自己目录下的内容。
ASP.NET自动监测配置文件的更改并更新配置使其生效而无需重启服务器。
参考文献 1美Kevin HoffmanLonny Kruger.著.董梁高猛等.译.C.NET技术内幕M.清华大学出版社2006. 2美Fritz Onion.著.
ASP.NET基础教程――C案例版M.施诺.译.清华大学出版社2003. 3Richard AndersonBrian Francis.著.王毅杨浩.等.译.
ASP.NET高级编程M.清华大学出版社2002. 4Dino Esposito.著.施平安.译.
ASP.NET2.0技术内幕M.清华大学出版社2006. 5栗松涛.XML程序设计M.清华大学出版社2001.