ASP-NET应用开发教程案例16-Web系统安全和部署课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《ASP-NET应用开发教程案例16-Web系统安全和部署课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASP NET 应用 开发 教程 案例 16 Web 系统安全 部署 课件
- 资源描述:
-
1、ASP.NETASP.NET应用开发教程应用开发教程案例16 Web系统安全和部署 授课课时:授课课时:4 4课时(课时(180180分钟)分钟)216.1 案例描述 Web网站的安全最基本的是网站的安全最基本的是用户输入环节,要求具备防范用户输入环节,要求具备防范SQL语句的注入式攻击的能力,语句的注入式攻击的能力,以避免给以避免给Web系统带来严重的系统带来严重的安全威胁。更进一步的可以通安全威胁。更进一步的可以通过过ASP.NET和和IIS提供的身份提供的身份验证策略、授权策略等构建一验证策略、授权策略等构建一个多层次的安全体系以保障个多层次的安全体系以保障Web系统的安全。系统的安全。
2、SQL语句注语句注入式攻击的示例如图所示入式攻击的示例如图所示。案例描述案例描述 316.2 案例完成步骤16.2.1 16.2.1 使用参数化查询使用参数化查询 1创建样例数据库创建样例数据库 本案例要求在本案例要求在SQL Server 2005数据库管理系统中创建名称为数据库管理系统中创建名称为Security的数据库,其中包含一个名称为的数据库,其中包含一个名称为tb_Users的数据表用来保存的数据表用来保存Web系统的用户信息。创建数据库的脚本如下。系统的用户信息。创建数据库的脚本如下。416.2 案例完成步骤16.2.1 16.2.1 使用参数化查询使用参数化查询 2界面设计界面
3、设计(1)创建一个名称为)创建一个名称为SecurityDemo的网站。的网站。(2)将)将SecurityDemo项目中的默认的项目中的默认的Default.aspx改名为改名为Login1.aspx。(3)布局页面)布局页面Login1页面主要页面主要Label、TextBox、Button控件组成,这些控件的主要控件组成,这些控件的主要属性见下表。属性见下表。516.2 案例完成步骤16.2.1 16.2.1 使用参数化查询使用参数化查询 616.2 案例完成步骤16.2.1 16.2.1 使用参数化查询使用参数化查询 最终得到的页面设计效果如图所示。该页面所对应最终得到的页面设计效果如
4、图所示。该页面所对应form部分的代码部分的代码参阅教材。参阅教材。716.2 案例完成步骤16.2.1 16.2.1 使用参数化查询使用参数化查询 3配置配置Web.Config文件文件 本次案例要实现连接和操作数据库的功能,因此将数据库的连接字符本次案例要实现连接和操作数据库的功能,因此将数据库的连接字符串保存在串保存在Web.Config文件中。在文件中。在Web.Config文件中配置连接字符串如文件中配置连接字符串如下所示:下所示:其中其中SQL Server 2005数据库服务器名称为数据库服务器名称为.sql2005,数据库名称为,数据库名称为Security,登录用户名为,登录
5、用户名为sa,密码为,密码为123456。816.2 案例完成步骤16.2.1 16.2.1 使用参数化查询使用参数化查询 4实现普通登实现普通登录功能录功能 普通登录功能普通登录功能使用普通的方式使用普通的方式构建构建SQL语句进语句进行用户名和密码行用户名和密码的验证,最终实的验证,最终实现的普通登录按现的普通登录按钮事件如下所示钮事件如下所示 916.2 案例完成步骤16.2.1 16.2.1 使用参数化查询使用参数化查询 Login1.aspx运行后,输入用户名运行后,输入用户名demo和密码和密码demo,单击,单击“普普通登录通登录”按钮,调用按钮,调用btnLogin_Click
6、方法进行用户名和密码的验证,方法进行用户名和密码的验证,验证通过后在两个标签中分别显示登录成功信息和验证通过后在两个标签中分别显示登录成功信息和SQL语句信息,程语句信息,程序运行结果如图所示。序运行结果如图所示。1016.2 案例完成步骤16.2.1 16.2.1 使用参数化查询使用参数化查询 5实现安全登录功能实现安全登录功能 普通登录功能使用普通登录功能使用普通的方式构建普通的方式构建SQL语语句进行用户名和密码的句进行用户名和密码的验证,最终实现的安全验证,最终实现的安全登录按钮事件代码如下登录按钮事件代码如下所示所示。1116.2 案例完成步骤16.2.1 16.2.1 使用参数化查
7、询使用参数化查询 Login1.aspx运行后,输入用户名运行后,输入用户名demo和密码和密码demo,单击,单击“安安全登录全登录”按钮,调用按钮,调用btnLoginBetter方法进行用户名和密码的验证,方法进行用户名和密码的验证,验证通过后在两个标签中分别显示登录成功信息和验证通过后在两个标签中分别显示登录成功信息和SQL语句信息(输语句信息(输入的用户名和密码受到保护),程序运行结果如图所示。入的用户名和密码受到保护),程序运行结果如图所示。1216.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 表单身份验证的开发步骤如下:表单身份验证的开发步骤如下
8、:l 将将IIS 配置为使用匿名访问;配置为使用匿名访问;l 将将ASP.NET 配置为使用表单身份验证;配置为使用表单身份验证;l 创建登录创建登录Web 表单并验证提供的凭据;表单并验证提供的凭据;l 从自定义数据存储中检索角色列表;从自定义数据存储中检索角色列表;l 创建表单身份验证票证(在票证中存储角色);创建表单身份验证票证(在票证中存储角色);l 创建一个创建一个IPrincipal 对象;对象;l 将将IPrincipal 对象放到当前的对象放到当前的HTTP 上下文中;上下文中;l 基于用户名基于用户名/角色成员身份对用户进行授权。角色成员身份对用户进行授权。1316.2 案例
9、完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 1创建存储过程创建存储过程sp_getUserInfo 由于要使用加密字符串,这里借助于存储过程来根据指定的用户名获由于要使用加密字符串,这里借助于存储过程来根据指定的用户名获得其密码。创建存储过程得其密码。创建存储过程sp_getUserInfo的脚本如下:的脚本如下:1416.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 2配置配置Web.Config文件文件在在Web.Config文件中添加启用文件中添加启用Forms表单验证的语句如下:表单验证的语句如下:由于使用相同的数据库,该实例使
10、用的连接字符串的同上例,在此不做由于使用相同的数据库,该实例使用的连接字符串的同上例,在此不做重复配置。重复配置。1516.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 3设计和实现注册页面设计和实现注册页面(1)在)在SecurityDemo网站中新建名称为网站中新建名称为Register.aspx的的Web页面。页面。(2)设计注册页面)设计注册页面Register页面主要页面主要Label、TextBox、Button和验证控件组成,这些控件和验证控件组成,这些控件的主要属性见下表。的主要属性见下表。1616.2 案例完成步骤16.2.2 16.2.2 使
11、用表单身份验证使用表单身份验证 最终得到的页面设计效果如图所示。最终得到的页面设计效果如图所示。1716.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 1816.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 1916.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 程序运行后,输入用户名和密码(分别为程序运行后,输入用户名和密码(分别为formdemo),如图所示。),如图所示。单击单击“注册注册”按钮,首先由验证控件完成数据输入的合法性验证,再把按钮,首先由验证控件完成数据输入的合法性验证,再把用户
12、名和加密后的密码写入到数据库,注册成功将会显示用户名和加密后的密码写入到数据库,注册成功将会显示“注册成功注册成功”的信息,如图所示。的信息,如图所示。2016.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 在在SQL Server 2005中查看到新注册的用户信息,我们发现该用户的中查看到新注册的用户信息,我们发现该用户的u_Pass和和u_SaltPass都已经被加密,如图所示。都已经被加密,如图所示。2116.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 4设计和实现登录页面设计和实现登录页面(Login2.aspx)(1)
13、在)在SecurityDemo网站中新建名称为网站中新建名称为Login2.aspx的的Web页面。页面。(2)设计登录页面)设计登录页面 Login2.aspx页面的设计与注册页面页面的设计与注册页面Register.aspx页面大同小异,页面大同小异,主要增加了一个主要增加了一个CheckBox用于选择是否保存用于选择是否保存Cookie,页面控件及其详,页面控件及其详细属性在此不再重复。最终得到的页面设计效果如图所示细属性在此不再重复。最终得到的页面设计效果如图所示。2216.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 (3)实现注册功能)实现注册功能
14、本程序对输入本程序对输入的用户和密码进行验的用户和密码进行验证,最终完成的证,最终完成的“登登录录”按钮的事件代码按钮的事件代码如下:如下:2316.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 (3)实现注册功能)实现注册功能 本程序对输入本程序对输入的用户和密码进行验的用户和密码进行验证,最终完成的证,最终完成的“登登录录”按钮的事件代码按钮的事件代码参阅教材。参阅教材。2416.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 5设计和实现测试页面设计和实现测试页面(Test.aspx)(1)在)在SecurityDemo网站中
15、新建名称为网站中新建名称为Test.aspx的的Web页面。页面。(2)设计测试页面)设计测试页面Test.aspx页面使用四个标签用于显示登录用户名和用户身份。并通过一页面使用四个标签用于显示登录用户名和用户身份。并通过一个个“注销注销”按钮返回。最终得到的页面设计效果如图所示。按钮返回。最终得到的页面设计效果如图所示。2516.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证(3)实现注销功能)实现注销功能本程序用于显示已注册的用户名及其身份,并提供注销功能,最终完成本程序用于显示已注册的用户名及其身份,并提供注销功能,最终完成的页面启动时和的页面启动时和“注销
16、注销”按钮的事件代码如下按钮的事件代码如下 2616.2 案例完成步骤16.2.2 16.2.2 使用表单身份验证使用表单身份验证 6运行程序运行程序 使用注册程序进行用户注册后,启动使用注册程序进行用户注册后,启动Login2.aspx程序,输入用户名程序,输入用户名和密码(分别为和密码(分别为formdemo),如图所示。单击),如图所示。单击“登录登录”按钮,首先由按钮,首先由验证控件完成数据输入的合法性验证,再进行用户名和密码验证,登录验证控件完成数据输入的合法性验证,再进行用户名和密码验证,登录成功将会跳转到测试页面(成功将会跳转到测试页面(Test.aspx)并显示登录用户的信息,
17、如图所)并显示登录用户的信息,如图所示。示。2716.2 案例完成步骤16.2.3 16.2.3 发布与测试发布与测试ASP.NETASP.NET程序程序 1发布发布ASP.NET程序程序(1)打开)打开“SecurityDemo”网站,在网站,在“解决方案资源管理器解决方案资源管理器”中,右中,右键单击要发布的网站键单击要发布的网站SecurityDemo,在弹出菜单中选择,在弹出菜单中选择“发布网站发布网站”,如图所示。打开如图所示。打开“发布网站发布网站”对话框。对话框。2816.2 案例完成步骤16.2.3 16.2.3 发布与测试发布与测试ASP.NETASP.NET程序程序 (2)
展开阅读全文