web应用开发技术教学课件作者台雯第七章

上传人:E**** 文档编号:102556694 上传时间:2019-10-03 格式:PPT 页数:117 大小:548KB
返回 下载 相关 举报
web应用开发技术教学课件作者台雯第七章_第1页
第1页 / 共117页
web应用开发技术教学课件作者台雯第七章_第2页
第2页 / 共117页
web应用开发技术教学课件作者台雯第七章_第3页
第3页 / 共117页
web应用开发技术教学课件作者台雯第七章_第4页
第4页 / 共117页
web应用开发技术教学课件作者台雯第七章_第5页
第5页 / 共117页
点击查看更多>>
资源描述

《web应用开发技术教学课件作者台雯第七章》由会员分享,可在线阅读,更多相关《web应用开发技术教学课件作者台雯第七章(117页珍藏版)》请在金锄头文库上搜索。

1、第7章 Web应用程序的配置与安全,7.1 Web应用程序 7.2 全局应用文件Global.asax 7.3 配置文件Web.Config 7.4 Web应用程序的安全配置,7.1 Web应用程序,Web应用程序工作在B/S模式下,用户通过浏览器访问驻留在Web服务器上的多个页面。ASP.NET Web应用程序被定义为可从Web服务器上的虚拟目录及其子目录中调用的所有文件和可执行码。其中可以包含网页(.html文件)、表单页面(.aspx文件)、Web表单用户控件(.ascx文件)、XML Web服务(.asmx文件)、HTTP处理程序、HTTP模块和其他文件(如图像和配置文件)。,下一页,

2、返回,7.1 Web应用程序,上一页,下一页,返回,现在使用的所有与Microsoft.NET Framework版本相关的脚本映射也都是ASP.NET应用程序的一部分。ASP.NET应用程序必须位于IIS虚拟目录(也称为应用程序根目录)中。 配置一个Web应用程序一般需要以下几步。 1.设置应用程序的目录结构 一个Web站点可以有多个应用程序运行,而每一个应用程序可以用唯一的URL来访问,首先应先利用IIS设置应用程序的目录为“虚拟目录”。,7.1 Web应用程序,每个“虚拟目录”和一个物理目录相对应,各个应用程序的“虚拟目录”可以不存在任何物理上的关系。例如: 应用URL:物理路径:c:i

3、netpubwwwroot 两者可以放置在完全不同的机器上。 2.设置相应的配置文件 根据应用程序的具体需要,可以设置相应的全局应用文件Global.asax和配置文件Web.Config,并且设置相应的选项。,上一页,下一页,返回,7.1 Web应用程序,Global.asax文件主要配置application_start、application_end、session_start、session_end 等事件。 3.把应用程序所涉及的各种文件放入“虚拟目录”中 把.aspx文件、.ascx文件以及各种资源文件分门别类放入应用程序虚拟目录所对应的物理目录中,把类引用所涉及的集合放入应用程序

4、目录下的bin目录中。,上一页,返回,7.2 全局应用文件Global.asax,Global.asax文件提供了一种在一个中心位置响应应用程序级或模块级事件的方法。用户可以使用这个文件实现应用程序安全性以及其他一些任务。 Global.asax是一个可选文件,若存在则必须位于应用程序的根目录下。.asax文件扩展名指出它是一个应用程序文件,而不是一个使用.aspx的ASP.NET文件。 Global.asax文件被配置为任何(通过URL的)直接HTTP请求都被自动拒绝,所以用户不能下载或查看其内容。ASP.NET页面框架能够自动识别出对Global.asax文件所做的任何更改。,下一页,返回

5、,7.2 全局应用文件Global.asax,在Global.asax被更改后,ASP.NET页面框架会重新启动应用程序,包括关闭所有的浏览器会话,去除所有状态信息,并重新启动应用程序域。 Global.asax文件继承自HttpApplication类,它维护一个HttpApplication对象池,并在需要时将对象池中的对象分配给应用程序。Global.asax文件包含以下事件。 Application_Init:在应用程序被实例化或第一次被调用时,该事件被触发。对于所有的HttpApplication对象实例,它都会被调用。,上一页,下一页,返回,7.2 全局应用文件Global.asa

6、x,Application_Disposed:在应用程序被销毁之前触发。这是清除以前所用资源的理想位置。 Application_Error:当应用程序中遇到一个未处理的异常时,该事件被触发。 Application_Start:在HttpApplication类的第一个实例被创建时,该事件被触发。它允许创建可以由所有HttpApplication实例访问的对象。,上一页,下一页,返回,7.2 全局应用文件Global.asax,上一页,下一页,返回,Application_End:在HttpApplication类的最后一个实例被销毁时,该事件被触发。在一个应用程序的生命周期内它只被触发一次

7、。 Application_BeginRequest:在接收到一个应用程序请求时触发。对于一个请求来说,它是第一个被触发的事件,请求一般是用户输入的一个页面请求(URL)。 Application_EndRequest:针对应用程序请求的最后一个事件。,7.2 全局应用文件Global.asax,上一页,下一页,返回,Application_PreRequestHandlerExecute:在ASP.NET页面框架开始执行诸如页面或Web服务之类的事件处理程序之前,该事件被触发。 Application_PostRequestHandlerExecute:在ASP.NET页面框架结束执行一个事

8、件处理程序时,该事件被触发。 Applcation_PreSendRequestHeaders:在ASP.NET页面框架发送HTTP头给请求客户(浏览器)时,该事件被触发。 Application_PreSendContent:在ASP.NET页面框架发送内容给请求客户(浏览器)时,该事件被触发。,7.2 全局应用文件Global.asax,Application_AcquireRequestState:在ASP.NET页面框架得到与当前请求相关的当前状态(Session状态)时,该事件被触发。 Application_ReleaseRequestState:在ASP.NET页面框架执行完所有

9、的事件处理程序时,该事件被触发。这将导致所有的状态模块保存它们当前的状态数据。 Application_ResolveRequestCache:在ASP.NET页面框架完成一个授权请求时,该事件被触发。它允许缓存模块从缓存中为请求提供服务,从而绕过事件处理程序的执行。,上一页,下一页,返回,7.2 全局应用文件Global.asax,Application_UpdateRequestCache:在ASP.NET页面框架完成事件处理程序的执行时,该事件被触发,从而使缓存模块存储响应数据,以供响应后续的请求时使用。 Application_AuthenticateRequest:在安全模块建立起当

10、前用户的有效的身份时,该事件被触发。在这个时候,用户的凭据将会被验证。 Application_AuthorizeRequest:当安全模块确认一个用户可以访问资源之后,该事件被触发。,上一页,下一页,返回,7.2 全局应用文件Global.asax,Session_Start:在一个新用户访问应用程序Web站点时,该事件被触发。 Session_End:在一个用户的会话超时、结束或它们离开应用程序Web站点时,该事件被触发。 使用上面的事件时应注意它们被触发的顺序。Application_Init和Application_Start事件在应用程序第一次启动时被触发一次。,上一页,下一页,返回

11、,7.2 全局应用文件Global.asax,相似地,Application_Disposed和Application_End事件在应用程序终止时被触发一次。此外,基于会话的事件(Session_Start和Session_End)只在用户进入和离开站点时被使用。其余的事件则处理应用程序请求,这些事件被触发的顺序是: Application_BeginRequest Application_AuthenticateRequest Application_AuthorizeRequest Application_ResolveRequestCache Application_AcquireReq

12、uestState,上一页,下一页,返回,7.2 全局应用文件Global.asax,Application_PreRequestHandlerExecute Application_PreSendRequestHeaders Application_PreSendRequestContent Application_PostRequestHandlerExecute Application_ReleaseRequestState Application_UpdateRequestCache Application_EndRequest,上一页,下一页,返回,7.2 全局应用文件Global.

13、asax,例7-1利用Global.asax文件统计网站总访问量和当前在线人数。 (1)在SQL Server中建立数据库Count,并建立表Count,设置字段num类型为int。 (2)启动Visual Studio.NET 2005,打开网站Chapter07。 (3)在“解决方案资源管理器”的根结点处右击,在弹出的快捷菜单中选择“添加新项”命令,再在弹出的对话框中选择“全局应用程序类”,就建立了Global.asax文件。,上一页,下一页,返回,7.2 全局应用文件Global.asax,(4)在Global.asax文件中输入如下代码: void Application_Start(

14、object sender,EventArgs e) /在应用程序启动时运行的代码 SqlConnection conn=new SqlConnection(“server=localhost;database=count; integrated security=SSPI;“);,上一页,下一页,返回,7.2 全局应用文件Global.asax,conn.Open(); SqlCommand cmd=new SqlCommand(“select*from count“,conn); int count=Convert.ToInt32(cmd.ExecuteScalar();/取出数据库中的记

15、录 conn.Close(); Application“Total”=count;/网站总访问量,上一页,下一页,返回,7.2 全局应用文件Global.asax,Application“Online“=0;/当前在线人数 void Application_End(object sender,EventArgs e) /在应用程序关闭时运行的代码 SqlConnection conn=new SqlConnection(“server=localhost;database=count;,上一页,下一页,返回,7.2 全局应用文件Global.asax,integrated security=S

16、SPI;“); conn.Open(); SqlCommand cmd=new SqlCommand(“update Count set num=“+ Application“Total“.ToString(),conn); cmd.ExecuteNonQuery();/更新数据库中的记录 conn.Close(); void Session_Start(object sender,EventArgs e),上一页,下一页,返回,7.2 全局应用文件Global.asax, /在新会话启动时运行的代码 Application.Lock(); Application“Total“=(int)Application“Total“+1; Application“Online“=(int)Application“Online“+1; Application.UnLock(); ,上一页,下一页,返回,7.2 全局应用文件Global.asax,void Session_End(object sender

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号