ASP.NET(C#)大学实用教程郭洪涛刘丹妮陈明华编著本章知识点应用程序的配置配置Global.asax文件配置Web.config文件网站安全性ASP.NET缓存关于应用程序的配置通过应用程序的配置可以实现对用户的访问权限限制等功能。一个“网站”就可以看成是一个应用程序;所谓应用程序就是添加了虚拟目录的文件夹。一个应用程序中通常包含如下内容:1.bin文件夹及其中的.dll文件2.所有的Web窗体、用户控件和XMLWeb服务文件3.配置文件,包括Global.asax文件和Web.config文件(1)Global.asax文件:该文件是一个声明文件,用来在Web应用程序运行时处理事件,每个应用程序中最多只能有一个Global.asax文件。(2)Web.config文件:ASP.NET资源的配置信息要在一组配置文件中进行设置,这组文件就是指Web.config文件。4.其他附加支持文件Global.asax文件的结构和应用Global.asax文件(也称作ASP.NET应用程序文件)是一个声明文件,该文件用来存放Session对象和Application对象的事件过程。每一个应用程序最多只能有一个Global.asax文件,并且必须存放在应用程序的根目录下。Global.asax文件的结构和应用例11-1是一个利用Global.asax文件实现网站日志的例子。在系统启动、系统关闭、客户登录或退出时在文本文件log.txt中记录有关信息。某次运行后,查看日志文件,结果如图配置Web.config文件Web.config文件是应用程序中的配置文件,该文件中的文本内容采用XML格式编写,用来保存一些常量或者访问权限设置等。Web.config文件的继承关系配置Web.config文件Web.config文件的结构Web.config是XML格式的文件,一个Web.config文件控制着特定应用程序的设置,典型的文件内容如图:配置Web.config文件Web.config文件的结构对常用标记的说明:1.configuration和/configuration存放所有的配置信息,system.web和/system.web存放所有的ASP.NET配置。2.appSettings和/appSettings存放对应用程序的设置信息。3.compilation/用于配置ASP.NET使用的所有编译设置4.customErrors/用于自定义错误信息5.authentication/设置应用程序的身份验证策略。6.trace/可以跟踪代码的执行,以便以后的查看。7.sessionState/中是关于会话信息的设置。配置Web.config文件使用Web.config文件存放常量语法如下:appSettingsaddkey=常量名称value=常量的值//appSettingsWeb.config文件中设置的自定义属性,语法如下:ConfigurationSettings.AppSettings[自定义常量名称];配置Web.config文件例11-2是一个利用Web.config文件存放欢迎信息的例子配置Web.config文件网站的安全性通过对Web.config文件的配置,可以从如下三方面实现对网站的保护:身份认证、授权及保护单个文件夹。1.身份验证(1)Windows身份验证这是验证用户身份的一种非常简单、快捷、易用的方式,但是该种方式只能应用于IE5.0以上版本的浏览器。第一步,要在应用程序的Web.config文件中进行设置,添加如下代码:system.webauthenticationmode=Windows/system.web配置Web.config文件网站的安全性1.身份验证(1)Windows身份验证第二步,需要在IIS中进行设置。打开【Internet服务管理器】,选中要保护的Web站点和应用程序;右击应用程序,选择菜【属性】选项;在弹出的对话框中单击【目录安全性】标签;在【匿名访问和验证控制】区域单击【编辑】按钮;得到如图11-4所示的【验证方法】对话框,然后选择“集成Windows身份认证”。配置Web.config文件网站的安全性1.身份验证(1)Windows身份验证第三步,添加用户。选择【开始】→【程序】→【管理工具】→【计算机管理】菜单命令,打开【计算机管理】窗口。如图11-5所示,选择【用户】,并在右边用户列表框中的右键菜单中选择【新用户】命令,为每个用户添加用户名和密码。配置Web.config文件网站的安全性(2)Passport身份验证这种身份验证是由微软公司提供的一种集中式的身份验证服务。提供了所有已注册成员站点的统一登录。要在服务器上实现它,需要先下载PassportSDK,它还需要安装IIS。配置Web.config文件网站的安全性(3)Forms身份验证这种验证方式将用户名和密码信息存储在数据库文件、文本文件或XML文件中,并在应用程序中添加一个登录页面,没有通过身份验证的用户访问任何页面时,都会被自动引导至该登录页面。客户必须输入用户名和密码信息,它们与文件中存放的相应信息进行比较之后,如果正确则在客户机上创建一个验证Cookie,使客户可以继续访问其他页面。配置Web.config文件网站的安全性(3)Forms身份验证实现Forms身份验证需要如下3个步骤:①建立身份验证,在Web.config文件中添加如下代码:system.webauthenticationmode=Formsformsname=Cookie对象名称loginUrl=登录页面路径/authentication//system.web②在Web.config文件中设置授权。③创建登录页面配置Web.config文件网站的安全性2.授权对不同的用户授予不同的访问权限,需要在Web.config文件中建立authorization元素,设置语句为:authorizationdenyusers=用户列表/allowusers=用户列表//authorization配置Web.config文件网站的安全性3.保护单个文件和文件夹(1)当把Web.config文件放置到应用程序的某个文件夹下时,在该Web.config文件进行的身份验证和授权的设置,作用就是保护其所在的文件夹。通过在Web.config文件中添加如下的XML标记,也能够实现保护特定文件夹,甚至保护特定文件的目的。设置语句为:locationpath=文件/文件夹的路径system.webauthorizationdenyusers=用户列表/allowusers=用户列表//authorization/system.web/location配置Web.config文件例11-4是一个保护单个文件的例子配置Web.config文件例11-5是一个应用了Web.config文件的综合示例ASP.NET缓存技术页面输出缓存该机制将整个ASP.NET页面内容保存在服务器的内存中。当用户请求该页面时,系统从内存中输出相关数据,直到缓存数据过期实现页面输出缓存的一种方法是使用%@OutputCache%缓存指令,声明代码为:%@OutputCacheCacheProfile=NoStore=True|FalseDuration=#ofsecondsLocation=Any+Client|Downstream+Server|None|ServerandClientSqlDependency=database/tablenamepair|CommandNotificationVaryByControl=controlnameVaryByCustom=browser|customstringVaryByHeader=headersVaryByParam=parameternameShared=true%例如:%@OutputCacheDuration=60Location=AnyVaryByParam=None%ASP.NET缓存技术页片段缓存将那些访问频率高、构造成本高且适合于缓存的对象或数据标识出来,然后把它们创建成页面输出缓存的一个缓存项实现方式:将部分内容创建成一个用户控件,然后在其中添加%@OutputCache%缓存指令控件缓存与页面输出缓存%@OutputCache%指令的区别:①控件缓存的%@OutputCache%指令设置在用户控件文件中,而页面输出缓存的%@OutputCache%指令设置在普通ASP.NET文件中;②控件缓存的%@OutputCache%指令中只能设置6个属性,Duratrion,Shared,SqlDependency,VaryByControl,VaryByCustom和VaryByParam,而在页面输出缓存中可以使用的属性有十几个。下面是一条常用的页片段缓存的%@OutputCache%指令:%@OutputCacheDuration=120VaryByParam=CategoryID;SelectedID%ASP.NET缓存技术应用程序数据缓存数据缓存是将数据或DataSet对象等保存到缓存中缺点:应用程序缓存中的数据是易丢失的,数据并不是在整个应用程序生命周期内都存储在内存中。优点:由ASP.NET管理缓存,在项过期、无效和内存不足时移除缓存当中的项,还可以配置应用程序缓存,以便在移除项的时候通知应用程序。实现方法:使用Cache对象,把缓存项存储在服务器端的内存中。例如:Cache[poem]=采菊东篱下,悠然现南山;//向缓存中写入内容stringpoem=Cache[poem].ToString();//从缓存中读取保存的内容ASP.NET缓存技术例11-6是一个应用程序数据缓存示例