课程名称.docx
- 文档编号:24455613
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:11
- 大小:22.08KB
课程名称.docx
《课程名称.docx》由会员分享,可在线阅读,更多相关《课程名称.docx(11页珍藏版)》请在冰豆网上搜索。
课程名称
课程名称
C#WEB数据库编程
第十九讲
系统用户权限管理
授课教师
刘晓刚
课时
4
教材及主要参考书:
ASP.NET(c#)实践教程
授课内容:
模块八系统用户权限管理
目的要求:
通过教学,使学生了解ASP.NET的三种身份验证方式:
Windows身份验证、Passport身份验证、Forms身份验证的特点及区别;熟练掌握配置Web.config,对Web应用程序实现身份验证;掌握Membership类与MembershipUser类,掌握登录控件的使用。
重点与难点:
Forms身份验证的使用及配置;
如何设置自定义错误页面;
FormsAuthentication类;
Membership类与MembershipUser类;
FormsAuthentication对象及其各方法的使用;
教学过程设计:
1、任务布置
任务一:
对外运管理系统的内部管理子系统和在线用户查询系统分别进行配置。
任务二:
对外运管理系统的内容管理子系统进行权限管理和角色分配。
2、新课导入
提问学生回答状态管理的相关对象回顾上次课内容;
回顾以前实现的用户登录注册管理导入本课。
3、教学内容
1、介绍ASP.NET的两种配置文件
machine.config:
提供整个机器的默认配置,对该文件的修改将影响所有本机的站点。
web.config:
一般用于应用程序级别的配置文件,对其修改不影响其他站点,也可以用于站点下的子目录。
配置文件:
基于XML,配置节元素区分大小写;可读可写(相比二进制的配置方便);修改配置后,ASP.NET自动检测变化,不需要重启服务器或IIS。
machine.config设置可应用于整个服务器的属性,即服务器上驻留的所有应用程序都将应用这些设置。
web.config文件向它们所在的目录及其子目录提供配置信息。
一个设计良好的配置文件系统应该是利用machine.config文件中存储各种常用设置,然后在需要时,利用Web.config文件覆盖这些设置即可。
2、介绍ASP.NET配置文件的结构
在配置文件中,所有的配置信息都驻留在
标记间的配置信息分为两个主区域:
配置节处理程序声明
配置节设置区。
配置节处理程序声明区:
出现在配置文件顶部
包含在
配置节设置区
位于
每个配置节都包含子标记,这些子标记带有包含该节设置的属性。
该元素的设置应用于没有出现@Page指令的的所有页面。
如:
enableViewState="true|false" autoEventWireup="true|false" smartNavigation="true|false" pageBaseType="typename,assembly" userControlBaseType="typename" validateRequest="true|False"/> Session状态是为ASP.NET应用程序中的每个用户提供的专用数据存储结构,它实际上是基于关键字/值对的Hashtable。 可以配置要使用的状态管理方式,默认的会话超时时间,以及是否启用Cookie等配置信息。 如: port"sqlConnectionString="sqlconnectionstring"stateNetworkTimeout="numberofseconds"/> 最为常见的是debug和defaultLanguage属性。 ASP.NET提供的灵活性允许开发人员编写自定义错误页面,并在发生任何特定错误时,将浏览器重定向到这些错误页面。 如: mode="On|Off|RemoteOnly"> redirect="url"/> 它不仅包括请求、应答、文件的编码,还包括用来指定Web请求和本地查询所关联的区域性设置。 requestEncoding="任一有效的编码字符串" responseEncoding="任一有效的编码字符串“ fileEncoding="任一有效的编码字符串“ culture="任一有效的区域字符串" uiCulture="任一有效的区域字符串"/> ASP.NET中的身份验证可分为Windows验证、Passport验证、Forms验证和匿名验证。 更新数据库连接配置 连接字符串存入web.config中 修改数据DBHelper文件中数据连接的设置代码 加密解密该连接字符串 数据库连接字符串存储于 读取数据库连接的方法 注意事项: 使用ConfigurationManager需要引入System.Configuration类库; 数据访问层的类库引用该类需要手动添加System.Configuration类库的引用。 3、配置文件小结 根据配置文件包含的设置所应用的范围,可将其划分为两类: machine.config和web.config。 在配置文件中,所有的配置信息都驻留在 标记间的配置信息分为两个主区域: 配置节处理程序声明和配置节设置区。 4、简单介绍Web应用程序面临的安全威胁 电子欺骗 篡改 否认 信息泄露 拒绝服务 提升权限 5、图示讲解ASP.NET应用程序的安全架构 6、讲解身份验证(Authentication)的概念 身份验证是指系统为了要将访问局限于特定的用户,就必须能够标识他们。 这并不是说系统必须知道用户的全部信息,而是指把每个用户区别开来,识别出哪些用户应该访问,哪些用户不能访问。 身份验证从实施的范围上划分,可以分为: ASP.NET身份验证; 企业服务身份验证; SQLServer身份验证, 而从技术上划分,可以分为: Windows身份验证; Forms身份验证; Passport身份验证和匿名验证。 (1).Windows身份验证(WindowsAuthentication) 适用于企业内部Intranet中使用,适合于用户数目固定,且这些用户拥有已存在的Windows用户帐户的情况。 它的缺点是它不能通过代理服务器工作,因此对于大多数的Web应用程序不合适。 (2).Forms身份验证(FormsAuthentication) 它可以支持很多浏览器且在Internet上有着广泛的支持,主要是基于Cookie来实现用户身份验证,它的主要缺点是在于它需要自己编写身份验证逻辑(不管是自行编写的代码或登录系列控件中内置的代码)。 (3).Passport身份验证(PassportAuthentication) Microsoft.NETPassport是一种用户身份验证服务,站点用户可使用该服务创建单次登录名和密码,从而方便地访所有启用.NETPassport的网站和服务。 启用.NETPassport的站点依靠.NETPassport中央服务器来验证用户,而不是主持和维护它们自己的专用身份验证系统。 用户使用同样的用户名和密码就可以登录到许多Internet站点,例如: Hotmail和MSN都使用.NETPassport来验证用户。 缺点: (1)使用这个服务要付费; (2)需要每个用户都要有一个有效的.NETPassport账户 7、讲解授权(Authorization)的概念 在对提交请求的用户进行身份验证后,已经可以确定和识别用户的身份,下一步即需要确定用户可以访问哪些资源和操作,称为授权。 授权将决定是否允许用户访问请求的资源。 授权从实施的范围上划分,可以分为: ASP.NET授权 企业服务授权 SQLServer授权 从技术上划分,可以分为 URL授权 文件授权 主体授权。 8、图示讲解安全检查的处理流程 图示讲解ASP.NET中安全检查的执行流程 9、介绍Windows身份验证: 如果开发一个公司的内部网,那么就可以基于现存的Windows用户帐号和用户组来使用Windows身份验证。 (1)配置IIS服务器的安全性 (2)配置Windows的安全性 (3)启用Windows验证 (4)授权配置 使用Windows验证可以借助Windows的用户验证机制来开发应用程序,可以减少代码编写的工作量,其比较适合在局域网环境内使用。 使用Windows验证,验证操作分为两个步骤: 一是IIS验证,二是ASP.NET验证。 10、讲解Forms验证的处理流程 Forms验证,有时也称为窗体验证或表单验证,它是在应用开发时最常用的身份验证方式,该种方式可以把用户验证信息灵活的保存到Web.Config文件、XML文件或数据库表等多种存储结构中。 Forms身份验证需要使用System.Web.Security命名空间中的以下几个类 FormsAuthentication类: 包含了用于执行表单验证的多个静态方法,下面列出几个常用的公共方法 publicstaticboolAuthenticate(stringname,stringpassword); publicstaticvoidRedirectFromLoginPage(stringuserName boolcreatePersistentCookie); publicstaticvoidSignOut(); FormsAuthenticationTicket类: 表示针对表单验证的Cookie所使用的授权令牌,下面是几个常用的属性。 CookiePath属性: 验证令牌Cookie的路径 Expiration属性: 验证令牌Cookie过期的日期 Expired属性: 表示当前验证令牌是否过期 IsPersistent属性: 表示验证令牌是否存储在持久性的Cookie中 IssueDate属性: 表示包含令牌的Cookie的创建日期 Name属性: 与令牌有关的用户名 FormsIdentity类: 表示通过表单验证后的用户身份,下面是几个常用的属性。 IsAuthenticated属性: 表示是否已通过验证 Name属性: 已通过验证的用户名 Ticket属性: 获取与当前请求关联的FormsAuthenticationTicket。 FormsAuthenticationModule类: 用于表单验证的真正模块,其Authenticate事件: 定义在身份验证过程中引发的事件。 启用Forms身份验证需要配置IIS使用匿名身份验证 IIS—默认网站,右键,目录安全性 要为应用程序启用基本的表单验证,必须完成如下三个步骤: ①修改应用程序根Web.Config文件中authentication配置节来应用程序设置验证模式。 ②通过修改适当目录下的Web.Config文件中的authorization配置节来拒绝匿名用户访问应用程序中的一个或多个目录。 ③创建一个登录页面,包含一个可以让用户输入其用户名和密码表单。 在 timeout: 以整数分钟为单位的时间量,超过此时间量,Cookie将过期。 默认值是30。 protection: 用于保护Cookie数据的方法。 有效值如下所示: a.All(默认值),同时使用数据验证和加密来保护Cookie。 配置的数据验证算法基于元素。 如果三重DES可用并且密钥足够长(48位),则使用三重DES进行加密。 b.None,用于仅将Cookie用于个性化并且安全要求不高的站点。 加密和验证都可以被禁用。 尽管以此方式使用Cookie需谨慎,但对于使用.NET框架实现个性化的任何方法,此设置提供了最佳性能。 c.Encryption,使用TripleDES或DES加密Cookie,但不对Cookie进行数据验证。 这类Cookie容易受到精心选择的纯文本的攻击。 d.Validation,不加密Cookie的内容,但验证Cookie数据在传输过程中是否未被更改。 若要创建Cookie,验证密钥在缓冲区中与Cookie数据连接,并且计算出MAC并将其追加到输出的Cookie。 Forms验证,有时也称为窗体验证或表单验证。 使用该种方式开发人员可以轻松的实现一个用户注册和认证系统。 Forms验证依赖于浏览器Cookie来确定用户的身份。 Forms身份验证需要使用System.Web.Security命名空间中的以下几个类: FormsAuthentication类、FormsAuthenticationTicket类、FormsIdentity类、FormsAuthenticationModule类。 11、介绍用于成员关系管理的数据库: aspnetdb数据库: 一个MicrosoftSQLServerExpressEdition文件,用于存储应用程序使用的所有成员关系和角色管理信息。 登录系列控件使用的后台数据库。 该数据库提供了一系列数据表和几十个存储过程实现登录中的一系列功能。 它可使用WAT建立。 ASP.NET2.0中自带的Web网站管理工具WAT(WebSiteAdministrationTool),用来帮助开发人员对Web应用程序进行可视化配置和管理。 图示讲解aspnetdb数据库结构。 12、演示在ASP.NET网站管理工具中管理用户和权限 13、讲解角色与授权: 实例演示 授权设置可应用到整个Web应用程序中,除非它们被包括在 用户可在 用户或角色的意义是由ASP.NETWeb应用程序配置使用的IIS身份验证类型来决定的。 对于集成Windows身份验证,用户是计算机或域用户,角色是计算机或域组。 实例练习: 某站点下有角色: Admin、User、VIP等,现该网站开发一个新功能(该功能所有页面单独出现在Fun目录下),只允许VIP用户访问。 现在由于管理需要,Admin组中的Administrator用户要开通访问权限,请编写配置文件。 14、介绍登录系列控件: Web站点常见功能包括用户登录、创建新用户、显示登录状态、显示登录用户名、更新或重置密码等。 在ASP.NET2.0中,新增了一组登录系列控件,可以无需编写一行代码就能实现相应的用户界面和功能。 同时,这些控件还内置了丰富的成员对象,提高了应用灵活性,另外这些控件还加强了安全方面的控制。 例如: 默认情况下,登录是以纯文本形式工作于HTTP上,若对安全性需要较高,可使用SSL加密的HTTPS。 实例演示登录控件的使用 CreateUserWizard控件 Login控件 LoginName控件 LoginStatus控件 LoginView控件 PasswordRecovery控件 ChangePassword控件 4、小结 1.安全性的概念 为了保证使用ASP.NET开发的应用程序的安全性,Microsoft公司提出了一套安全体系,其基本概念有身份验证(Authentication): 系统实现对用户的标识。 和授权(Authorization)等: 确定用户可以访问哪些资源和操作,称为授权。 ASP.NET中的安全认证的执行流程是: 首先进行身份认证模块的处理,如果通过,则进入授权模块的处理,接着进入页面处理模块。 其中身份认证则包括Windows身份认证,Forms身份认证和Passport身份认证,而授权则包括文件授权和URL授权。 2.使用Windows验证 使用Windows验证可以借助Windows的用户验证机制来开发应用程序,可以减少代码编写的工作量,其比较适合在局域网环境内使用。 使用Windows验证,验证操作分为两个步骤: 一是IIS验证,二是ASP.NET验证。 当IIS接到客户端请求时,IIS使用基本、简要或集成Windows身份验证对客户进行身份验证。 如果客户已通过身份验证,则IIS将已验证的请求移交给ASP.NET。 否则IIS直接拒绝访问。 当客户端请求进入ASP.NET后,ASP.NET应用程序使用从IIS传递来的访问标记模拟正在请求的客户,并依赖于NTFS文件权限来授予访问权。 实现Windows验证可以使用以下4步: ①配置IIS服务器的安全性 ②配置Windows的安全性 ③启用Windows验证 ④授权配置 3.实现基于表单的验证 Forms验证,有时也称为窗体验证或表单验证。 使用该种方式开发人员可以轻松的实现一个用户注册和认证系统。 Forms验证依赖于浏览器Cookie来确定用户的身份,当用户向服务器请求资源时,Web服务器将从用户机器的Cookie中提取认证信息,如果认证信息不存在,则将页面重定向到应用系统的登录页面,如果用户输入了一个有效的用户名和相应的密码,则将自动把该用户重定向到最初的页面。 要为应用程序启用基本的表单验证,必须完成如下三个步骤: ①修改应用程序根Web.Config文件中authentication配置节来应用程序设置验证模式。 ②通过修改适当目录下的Web.Config文件中的authorization配置节来拒绝匿名用户访问应用程序中的一个或多个目录。 ③创建一个登录页面,包含一个可以让用户输入其用户名和密码表单。 作业: 实现留言管理后台的配置和管理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程名称