《ASP.NET 4.0动态网站开发基础教程 教学课件 ppt 作者 978-7-302-28670-7 chap11》由会员分享,可在线阅读,更多相关《ASP.NET 4.0动态网站开发基础教程 教学课件 ppt 作者 978-7-302-28670-7 chap11(13页珍藏版)》请在金锄头文库上搜索。
1、第11章 配置ASP.NET程序,11.1 使用web.config进行配置,在每一个ASP.NET应用程序的目录中都包含了一个web.config文件,该文件就是ASP.NET的配置文件,格式为XML格式的纯文本文件。 由于ASP.NET 4.0的 Machine.config文件自动注册所有的ASP.NET 标识、处理器和模块,所以在Vistul Studio 2010中创建新的ASP.NET应用项目时,会发现默认的Web.config文件既干净又简洁而不像以前的版本有100多行代码。如果想修改配置的设置,可以在Web.config文件下的Web.Release.config文件中进行重新
2、配置。它可以提供重写或修改Web.config文件中定义的设置。,Web.config文件简介,11.1 使用web.config进行配置,web.config文件配置包括三个部分: 配置节处理程序声明一般位于配置文件顶部的 和 标记之间。每个声明都包含在一个标记中,它们被用来指定提供特定配置数据集的节的名称和处理该节中配置数据的.NET框架类的名称。 和用于定义自己需要的应用程序设置项。 配置节设置区域一般位于标记后,它包含实际的配置设置,其根节点为和标记。,Web.config文件简介,配置节设置部分的和可以设置应用程序的身份验证策略。可以选择的模式有如下几种: Windows:IIS根据
3、应用程序的设置执行身份验证。 Forms:在程序中为用户提供一个用于身份验证的的自定义窗体(Web 页),然后在应用程序中验证用户的身份。用户身份验证信息存储在Cookie中。 Passport:身份验证是通过Microsoft的集中身份验证服务执行的,它为成员站点提供单独登录和核心配置文件服务。 None:不执行身份验证。,11.1.1 身份验证和授权,11.1 使用web.config进行配置,当用户指定了身份验证模式为Forms时,需要添加元素,使用该元素可以对cookie验证进行设置。标签支持以下几个属性: Name:它用来指定完成身份验证的HTTP cookie的名称,其默认值为AS
4、PXAUTH。 LoginUrl:它定义如果不通过有效验证时重定向到的URL地址。 Protection:指定cookie数据的保护方式。可设置为All、None、Encryption和Validation。其中All表示通过加密cookie数据和对cookie数据进行有效性验证两种方式来对cookie进行保护;None表示不保护cookie;Encryption表示对cookie内容进行加密;Validation表示对cookie内容进行有效性验证。 TimeOut:指定cookie失效的时间。超时后将需要重新进行登录验证获得新的cookie。,11.1.1 身份验证和授权,11.1 使用w
5、eb.config进行配置,compilation:完成ASP.NET使用动态调试编译选项。 customErrors:完成在ASP.NET应用程序中自定义错误消息的功能。 sessionstate:完成会话状态的设置。 trace:配置ASP.NET应用程序的应用程序级别跟踪记录。 authorization:设置应用程序的授权策略,可以设置该段允许或拒绝不同的用户或角色访问。,11.1.2 web.config文件的其他设置,11.1 使用web.config进行配置,11.2 使用global.asax进行配置,global.asax文件中包括以下为几个程序级别事件含义: Applica
6、tion_Start:ASP.NET程序开始执行时触发该事件。 Application_End:ASP.NET程序结束执行时触发该事件。 Session_Start:一个session开始执行时触发该事件。 Session_End:一个session结束执行时触发该事件。 Application_BeginRequest:一个请求开始执行时触发该事件。 Application_EndRequest:一个请求结束执行时触发该事件。 Application_Error:ASP.NET程序程序出错时触发该事件。,11.2 使用global.asax进行配置,当位于应用程序namespace的任何资源
7、或URL被首次访问时,ASP.NET系统将自动解析Glabal.asax文件并把它编译为动态的.NET框架类,此类派生自HttpApplication基类。在创建HttpApplication派生类实例的同时,还将引发Application_Start事件。随后HttpApplication 实例将处理页面的一个个请求或者响应,同时触发Application_BeginRequest或者Application_EndRequest事件,直到最后一个实例退出时才引发Application_End事件。 在Application_Start事件中可以进行一些系统资源的申请和初始化等操作,在Appl
8、ication_End事件中可以进行释放系统资源的操作。,11.2.1 编写Application_Start和Application_End事件处理代码,11.2 使用global.asax进行配置,应用实例:在Application_Start事件中记录的时间写入数据库,然后显示在网页上。,核心代码: void Application_Start(object sender, EventArgs e) Application.Lock(); Application“ID“ = count; Application.UnLock(); string strComm = “INSERT INT
9、O log(开始时间) Values (“ + DateTime.Now.ToString() + “)“; ,当服务器接收到应用程序中的URL格式的HTTP请求时,将触发Session_Start事件,并建立一个Session对象。当调用Session.Abandon方法时或者在TimeOut时间内用户没有刷新操作的话,将触发Session_End事件。,11.2 使用global.asax进行配置,11.2.2 编写Session_Start和Session_End事件代码,应用实例:实现一个网站计数器,用来显示在线人数和网站访问量。,11.2 使用global.asax进行配置,核心代码
10、: void Session_Start(object sender, EventArgs e) Session.Timeout = 1; Application.Lock(); Application“OnlineNum“ = (int)Application“OnlineNum“ + 1; Application“TotalNum“ = (int)Application“TotalNum“ + 1; Application.UnLock(); void Session_End(object sender, EventArgs e) Application.Lock(); Applicati
11、on“OnlineNum“ = (int)Application“OnlineNum“ - 1; Application.UnLock(); ,global.asax文件中的Application_Error事件在ASP.NET程序程序出错时被触发。可以在该事件中进行错误处理。,11.2 使用global.asax进行配置,11.2.3 编写错误处理程序,应用实例:在服务器不存在时,进行错误处理。,11.2 使用global.asax进行配置,核心代码: protected void Application_Error(Object sender, EventArgs e) string msg = Server.GetLastError().ToString(); Application.Lock(); Application“Error“ = msg; Application.UnLock(); Server.Transfer(“DisplayError.aspx“); ,