540 likes | 761 Vues
《ASP.NET 程序设计 》 配套课件. 姓名:杨东霞 信箱: dzxyydx@sohu.com. 第11章 配置应用程序及其它应用. 讲解提纲. 11.1 关于配置应用程序 11.2 配置 Global.asax 文件 11.3 配置 web.Config 文件 11.4 安全考虑 11.5 使用缓存 11.6 调试程序. 本章要点. 配置 Global.asa 文件 配置 web.Config 文件,尤其是读取其中自定义的属性。 如何保证应用程序的安全 如何使用输出缓存 如何调试程序.
E N D
《ASP.NET程序设计》配套课件 姓名:杨东霞 信箱:dzxyydx@sohu.com
讲解提纲 • 11.1 关于配置应用程序 • 11.2 配置Global.asax文件 • 11.3 配置web.Config文件 • 11.4 安全考虑 • 11.5 使用缓存 • 11.6 调试程序
本章要点 • 配置Global.asa文件 • 配置web.Config文件,尤其是读取其中自定义的属性。 • 如何保证应用程序的安全 • 如何使用输出缓存 • 如何调试程序
本节要点 授课顺序 43 • 教学目标 掌握应用程序的配置和Global.asax文件的配置 • 重点: Global.asax文件的配置 • 难点: Global.asax文件的配置
11.1 关于配置应用程序 • 什么是应用程序? • 配置应用程序的重要内容: • (1)bin文件夹 • (2)Global.asax文件 • (3)web.Config文件
11.2 配置Global.asax文件 • 该文件用来存放Session对象和Application对象的事件过程。 • 每一个应用程序只能有1个Global.asax文件,并必须存放在应用程序的根目录下。
11.2.1 Global.asax文件的基本格式 • 格式: • <Script language="VB" runat="server"> • Sub Application_OnStart(Sender As Object, E As EventArgs) • …… • End Sub • Sub Application_OnEnd(Sender As Object, E As EventArgs) • …… • End Sub • …… • </Script> • 位置: • 应用程序的根目录下,只有一个。 • 其中的事件: • Application_OnStart 、 Application_OnEnd 、Session_OnStart、Session_OnEnd、Application_OnBeginRequest、Application_OnEndRequest
11.2.2 Global.asax文件示例 • 这是一个网站日志示例,在系统启动、系统关闭、客户登录或退出时在文本文件log.txt中记录有关信息。 • 两个文件 • Global.asax 用来记录日志 • 11-2.aspx 用来将日志信息显示在页面上
Global.asax文件 Global.aspx
11-2.aspx 读取日志信息 11-2.aspx
本节要点 授课顺序 44 • 教学目标 掌握web.Config文件的配置 • 重点: web.Config文件的配置 • 难点: web.Config文件的配置
11.3 配置web.Config文件 • web.Config文件用来保存一些常量或者访问权限设置等。 • 它的配置是层次式的。 • 所有的应用程序都会继承C:\WinNT\Microsoft.NET\Framework\(版本号)\config\machine.config文件,大部分常用的设置在该文件中都已经配置好了。
11.3.1 web.Config文件的基本格式 web.Config
11.3.2 读取自定义属性示例 • 在web.Config自定义属性 • <appSettings> • <add key=“常量名称”value=“常量的值"/> • </appSettings> • 读取自定义属性的语法 • ConfigurationSettings.AppSettings(自定义常量名称)
读取自定义属性示例 11-4.aspx
11.4 安全考虑 • 认证和授权 • 认证的三种方式 • (1)基于Windows的认证 • (2)基于表单的认证 • (3)基于微软的Passport的认证
11.4.1 基于Windows的认证 • 什么是Windows认证? • Windows认证的三个步骤: • 第1步:在web.Config中设置 • 第2步:在IIS中设置 • 第3步:添加用户
第1步:在web.Config中设置 • 在web.Config文件中添加如下语句: • <system.web> • <authentication mode="Windows" /> • </system.web>
第2步:在IIS中设置 • 选择【开始】→【程序】→【管理工具】→【Internet服务管理器】菜单命令打开IIS 。 • 在“虚拟目录属性”对话框的“目录安全性”标签中单击【编辑】按钮,然后选择认证方式。
第3步:添加用户 • 依次选择【开始】→【程序】→【管理工具】→【计算机管理】菜单命令打开对话框。 • 如图选择“用户”,并在右边用户列表框中的右键菜单中选择【新用户】命令,即可为每一个客户添加用户名和密码
11.4.2 基于表单的认证 • 什么是基于表单的认证? • 步骤: • 第1步:在web.Config中设置: • 第2步:建立登录页面。
第1步:在web.Config中设置 • 在应用程序的web.Config文件中添加如下语句: • <system.web> • <authentication mode="Forms" > • <forms name="认证cookie名称" loginUrl="登录页面路径" /> • </authentication> • </system.web>
第2步:建立登录页面 • 重要语句如下: • FormsAuthentication.SetAuthCookie(用户名称,true | false) • Response.Redirect(指定页面,一般为首页) • 也可以合为一句: • FormsAuthentication.Authenticate(用户名称,true | false) • 退出登录语句: • FormsAuthentication.SignOut()
11.4.3 关于授权 • 什么是授权? • 在web.Config中添加如下语句: • <authorization> • <deny users="用户列表" /> • <allow users="用户列表" /> • </authorization>
11.4.4 网络安全综合示例 • 这个示例要求用户必须注册、登录后才能浏览学习资料。 • 管理员用户登录后就可以管理普通用户。
网络安全综合示例结构 • web.Config web.Config配置文件 • default.aspx 应用程序首页 • userinfo.mdb 这是用户信息数据库 • log文件夹 • login.aspx 登录页面(login.aspx) • logout.aspx 退出登录页面 • adduser.aspx 新用户注册页面 • admin文件夹 • admin.aspx 管理员页面 • course 文件夹 用来存放学习资料页面(1.aspx、2.aspx和3.aspx)及配套文件,不用管它。
(1)web.Config Web.Config
(2)default.aspx • 这只是一个普通页面文件,通过验证后,就可以打开该页面,进行学习。 default.aspx
(3)userinfo.mdb • 保存用户信息的数据库文件。 • 包含1个表users,其中有5个字段,分别为id(序号)、username(用户名)、mypassword(密码)、email(E-mail)、submit_date(注册日期)。 • 其中username不能重复,所以设为主键。
(4)login.aspx Login.aspx
(5)logout.aspx logout.aspx
(6)adduser.aspx • 这是一个普通的添加用户的页面。 • 注意因为username是主键,所以如果用户名已经被其它人注册,将会发生错误。然后提示客户重新注册即可。
(7)admin.aspx • 这也是一个普通的数据库管理页面。 • 当管理员用户admin通过认证后,就可以打开这个页面管理普通用户。 • 由于在web.Config中已经设置了,普通用户是无法打开该页面的。
(8)运行结果 Login.aspx default.aspx admin.aspx adduser.aspx
11.4.5 其它安全考虑 • 修改数据库的文件名和扩展名,尽量让别人猜不出来。 • 因为授权只对.aspx文件有效,对HTML文件无效。解决方法是修改扩展名为.aspx。 • 数据库中用户密码也可以加密 • (关于加密请看后面示例)
利用SHA1和MD5加密示例 11-4.aspx
11.5 使用缓存 • 什么是缓存? • 缓存的三种方式: • 页输出缓存 • 页片断缓存 • 数据缓存
11.5.1 页输出缓存 • 页输出缓存,就是可以将第一次请求的页面储存在内存中,以后再次请求时直接从内存中调用。 • 实现页输出缓存的方法是在页面顶端添加如下缓存指令: • <%@ OutputCache Duration="60" Location="Any" VaryByParam="None" %> • 说明: • Duration表示缓存时间 • Location表示缓存存放位置 • VaryByParam可以在缓存页面中添加参数
11.5.2 页片断缓存 • 所谓页片断缓存,就是只缓存页面中部分内容。 • 实现方法是将部分内容创建一个用户控件,然后在其中添加如11.5.1节中的缓存指令即可。
11.5.3 数据缓存 • 所谓数据缓存,就是将数据或DataSet对象等保存到缓存中。 • 实现方法是利用Cache类,它有点类似于Session对象和Application 对象
数据缓存示例 11-9.aspx
11.6 调试程序 • 讲解内容 • 使用Response.Write方法 • 使用Debug • 使用trace(跟踪) • 使用SDK 调试器
11.6.1 使用Response.Write方法 • 可以使用Response.Write方法在程序中输出中间结果。 • 尤其在数据库程序开发时,可以用它在页面上输出SQL语句。 • 使用该方法时结合注释和Response.End方法。
使用Response.Write方法示例 • 假如某一条SQL语句总是执行错误,这时候就可以在执行执行该语句之前使用Response.Write 方法将SQL语句输出到页面上,方便大家仔细查看。 • 具体方法: • strSql=“……” • Resonse.Write(strSql) • Response.End • ……
11.6.2 使用Debug • 有时候发生错误时,并不告诉你错误发生在哪一行,就可以在页面顶端添加 • <%@ Page debug="true"%> • 或者,在web.Config中添加 • <compilation debug="true" /> • 当发生错误时,就可以显示错误的具体信息。
11.6.3 使用trace(跟踪) • 所谓trace,指的是跟踪。它可以对程序中变量的值和代码执行情况进行跟踪。它分为两种:页面跟踪和应用程序跟踪。 • 实现页面跟踪只要在页面顶端添加 • <%@ Page trace="true"%> • 执行时,就会在页面上显示详细跟踪信息。 • 实现应用程序跟踪只要在web.Config中添加 • <trace enabled="true" /> • 执行完毕后,它会将跟踪情况保存到一个系统文件trace.axd中。在浏览器中输入http://localhost/test3/trace.axd就可以显示跟踪信息。
11.6.4 使用SDK 调试器 • .NET框架提供了一个很好的调试器,可以逐行调试程序。该调试器的位置一般位于: • C:\Program Files\Microsoft.NET\FrameworkSDK\GuiDebug\DbgCLR.exe • 调试的具体步骤如后:
第1步 • 打开调试器,在其中打开要调试的文件11-9.aspx。
第2步 • 打开浏览器,输入http://localhost/test3/11-9.aspx