实现Web应用程序的安全控制_第1页
实现Web应用程序的安全控制_第2页
实现Web应用程序的安全控制_第3页
实现Web应用程序的安全控制_第4页
实现Web应用程序的安全控制_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.实现Web应用程序的安全控制.学习目标学习目标 Web应用程序安全性的基本概念。 配置ASP.NET Web应用程序的的安全。 成员资格概述。 使用Web登录控件管理用户。 使用角色管理授权。.Web应用程序安全性的基本概念 Web应用程序安全性包含下列两方面的功能: (1)身份验证 验证用户的身份。即通过获取用户的凭据(各种形式的标识,如用户名和密码),并通过某些授权机构验证获取的用户凭据。如果这些凭据有效,则将提交这些凭据的实体视为通过身份验证。 (2)授权 授权用户对应用程序资源的访问权限。即通过对已验证身份授予或拒绝对特定资源的访问权限,以实现资源的访问保护和限制。.ASP.NET安

2、全结构 .ASP.NET用户身份验证 结合Internet信息服务(IIS),ASP.NET验证用户身份的方法包括: Windows验证 Forms身份验证 Microsoft Passport身份验证.ASP.NET资源授权访问 结合IIS目录权限控制、Web.config配置文件和Windows NTFS文件系统权限,ASP.NET可以实现对Web应用程序的资源授权访问: 主目录/虚拟目录权限:通过IIS,设置IIS主目录路/虚拟目录的访问权限。 Web.config配置文件:使用Web.config,声明列出了已授权用户、已授权角色(组)对各资源的访问权限。 NTFS文件系统权限.ASP

3、.NET 配置文件安全设置 Web.config配置文件中用于安全的配置主要包含三个主要的配置节: authentication authorization location.authentication节 authentication节用于配置ASP.NET身份验证方案。 可以指定应用程序使用的验证模式:Windows(默认)/ Forms/ Passport/ None。 authentication节配置格式如下: . .authorization节 authorization节用于配置Web应用程序的授权,以控制客户端对URL资源的访问权限。 例1,下列配置代码允许所有Admins角色

4、成员访问,拒绝所有其他用户访问: .location节 location节用于指定应用到特定文件或目录的设置。 例如,下列配置代码允许允许匿名用户访问Logon.aspx页面: .DEMO:配置ASP.NET的安全 操作实例10-1:配置ASP.NET的安全 操作任务:配置第9课创建的学生成绩管理系统ASP.NET Web数据库应用程序的安全,当未登录用户访问登录页面以外的页面时,自动跳转到登录页面。.Windows验证概述 在ASP.NET应用程序中,Windows身份验证将Microsoft Internet信息服务(IIS)所提供的用户标识视为已经过身份验证的用户。 IIS提供了下列几种

5、用于验证用户标识的身份验证机制: 匿名身份验基本身份验证 摘要式身份验证 Windows集成身份验证 基于客户端证书的身份验证 .Forms身份验证概述 使用Forms身份验证(即基于窗体的身份验证)时,应用程序通过用户提供的登录用户界面并进行自己的凭据验证。 ASP.NET对用户进行身份验证,将未经身份验证的用户重定向到登录页,并执行所有必要的Cookie管理。 要使用Forms身份验证,必须配置Web.config文件,设置的模式为Forms以启用基于窗体的身份验证,并拒绝匿名用户访问。.使用IIS进行安全授权 使用IIS进行安全授权 (1)IP地址及域名限制 (2)主目录/虚拟目录访问许

6、可.DEMO:配置IIS虚拟目录的权限 操作实例10-2:配置IIS虚拟目录的权限 操作任务:设置网站WEBDB的虚拟目录WEBDB访问许可,允许用户列目录和写入权限。.NTFS文件系统访问权限 通过使用NTFS文件系统和访问控制列表(ACL)指定哪些用户和哪些用户组可以访问应用程序文件 可以在操作系统级别上保护ASP.NET应用程序文件,以提高该应用程序的安全性。 具体操作方法请参阅Windows的在线帮助。.成员资格的基本概念 ASP.NET成员资格(Membership)提供了一种验证和存储用户凭据的内置方法。 结合ASP.NET成员资格、ASP.NET Forms身份验证、ASP.NE

7、T登录控件,用户可以高效地创建一个完整的用户身份验证系统。 成员资格包括两个主要类: (1)Membership(2)MembershipUser .配置网站以使用成员资格 要使用成员资格,必须先配置应用程序使用的成员资格提供程序。 在应用程序的Web.config文件中,system.web节子元素membership用于配置ASP.NET成员资格。 默认情况下,Machine.config配置文件包括一个默认的提供程序,指向应用程序子目录App_Data下SQL Server本地数据库aspnetdb.mdf.创建用户 使用成员资格方式管理用户时,可以使用下列三种方法创建新用户: (1)使

8、用网站管理工具 使用网站管理工具,通过图形界面,可以直接创建和管理用户。 (2)使用编程方式 使用自定义创建用户页面,在事件处理程序中,调用成员资格函数以编程方式创建和管理用户。 (3)使用登录控件 使用CreateUserWizard控件,自动实现创建新用户的功能。.用户登录页面 将应用程序配置为使用Forms身份验证时,使用loginUrl属性指定用于验证的页面(一般为login.aspx)。 实现用户登录页面的方法有两种: (1)使用登录控件 使用包含Login控件的页面,自动验证用户输入的用户名/密码。验证成功后,将经过身份验证的用户重定向回最初请求的URL或默认URL。 (2)使用自

9、定义页面 创建自定义页面,一般包括用户名和密码文本框。使用Membership.ValidateUser方法验证用户输入的用户名/密码。.Web登录控件的概念 ASP.NET 2.0提供了一系列的服务器登录控件(Login、LoginView、LoginStatus、LoginName和PasswordRecovery) 登录控件实际上封装了使用成员资格进行验证的所有逻辑。 登录控件使用ASP.NET 2.0中内置的成员资格服务和角色服务,与站点中定义的用户和角色信息交互。 登录控件可以向站点添加身份验证和基于授权的用户界面,如登录窗体、创建用户的窗体、密码检索,以及已登录的用户或角色的自定义

10、用户界面。.Login 控件 Login控件提供用户登录网站的用户界面。 Login控件使用成员资格服务在成员资格系统中对用户进行身份验证。.CreateUserWizard 控件 CreateUserWizard控件提供用于创建新网站用户帐户的界面 根据用户输入的信息,使用成员资格提供程序,在成员资格数据存储区创建新用户帐户。.LoginView 控件 LoginView控件用于根据用户的身份验证状态(匿名用户或登录用户)、以及登录用户所属的角色,来显示不同的网站内容模板。 LoginView控件自动检测用户的身份验证状态和角色,并将该信息与要向用户显示的信息的适当模板匹配。 LoginVi

11、ew控件由一个模板集合组成,各模板可与一个身份验证状态或者一个或多个角色组相关联。.LoginStatus 控件 LoginStatus控件自动检测用户的身份验证状态(Request.IsAuthenticated),并显示适当的登录/注销选项。 当单击【登录】按钮,将用户重定向到该网站的登录页。LoginStatus控件将从web.config文件窗体身份验证节检索登录页的URL。 当单击【注销】按钮,将清除用户的身份验证状态,并且执行相应的注销行为。.LoginName 控件 LoginName控件在页上显示当前经过身份验证的用户名(Page.User.Identity.Name)。 如果

12、用户没有登录,则该控件不在页上呈现,并且不占任何视觉空间。 通过设置FormatString属性,可以更改由LoginName控件显示的文.ChangePassword控件 ChangePassword控件提供修改密码的用户界面。 ChangePassword控件在Web页面中的呈现一般包括下列内容包括2个状态(视图): 【更改密码】视图:要求先输入当前密码,然后输入新密码/确认新密码。通过设置DisplayUserName属性为true,可显示UserName文本框,以未登录用户修改密码或修改其它用户的密码。 【成功】视图:显示已成功更改密码的确认信息。.PasswordRecovery控件

13、 PasswordRecovery控件提供用户恢复密码的用户界面。 PasswordRecovery控件提供根据用户名检索或重置用户密码的功能。然后将用户密码通过电子邮件发送给用户。 该控件不支持在用户的Web浏览器中向用户显示密码。.DEMO:使用CreateUserWizard控件创建用户注册页面 操作实例10-3:使用CreateUserWizard控件创建用户注册页面 开发任务:创建新用户注册页面Register.aspx。.DEMO:使用Login控件创建登录页面 操作实例10-4:使用Login控件创建登录页面 开发任务:使用Login控件创建登录页面Login.aspx。.DEM

14、O:使用LoginView控件检测用户身份 操作实例10-5:使用LoginView控件检测用户身份 开发任务:使用LoginView控件创建用户身份检测页面LoginView.aspx。.使用ChangePassword控件创建密码修改页面 操作实例10-6:使用ChangePassword控件创建密码修改页面 开发任务:使用ChangePassword控件创建密码修改页面ChangePassword.aspx。.使用PasswordRecovery控件创建密码恢复页面 操作实例10-7:使用PasswordRecovery控件创建密码恢复页面 开发任务:使用PasswordRecovery

15、控件创建密码恢复页面LoginPasswdRecovery.aspx。.角色管理的基本概念 角色管理主要用于授权管理。 角色相当于操作系统的组,可以创建不同的角色,如administrators、users、guests等,然后把用户添加到相应的角色中。 创建角色后,可以在应用程序中创建基于角色的访问规则。 基于角色的授权管理,可以大大减少系统管理的工作量。. 配置网站以使用角色管理 若要使用ASP.NET角色管理,需要在Web.config文件中启用它,配置代码如下: .创建角色和将用户分配给角色 使用成员资格方式管理角色时,可以使用下列两种方法创建新角色: (1)使用网站管理工具 使用网站

16、管理工具,通过图形界面,可以直接创建和管理角色、添加用户到角色、从角色中删除用户等操作。 (2)使用编程方式 使用Roles.CreateRole方法,创建一个新角色;使用Roles.AddUserToRole方法,把用户添加到角色;使用Roles.RemoveUserFromRole方法,把用户从角色中删除。.配置基于角色的访问规则 通过配置基于角色的访问规则,可以控制不同页面的访问授权。 可以使用下列两种方法创建新访问规则: (1)使用网站管理工具 使用网站管理工具,通过图形界面,可以直接允许和拒绝不同角色访问页/文件夹面的访问规则。 (2)直接编辑Web.config文件 使用syste

17、m.web节中的authorization元素,可以配置基于角色的访问规则。.以编程方式检查授权 使用编程方式,在页面或控件事件处理程序中,使用User.IsInRole可以判断当前用户是否属于某种角色,从而根据不同的角色执行不同的操作。 .DEMO:使用网站管理工具创建角色 操作实例10-8:使用网站管理工具创建角色 操作任务:使用角色管理器创建Administrators角色,并指定用户“jiang hong”成为Administrators角色的成员。.DEMO:使用网站管理工具创建基于角色的授权规则 操作实例10-9:使用网站管理工具创建基于角色的授权规则 开发任务:使用角色管理器控制页面访问授权:如果是Administrators组成员身份登录,则跳转到管理员用户身份访问页面;否则,页面仍停留在角色管理器控制页面的登录状态。.DEMO:使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论