身份验证授权和登录控件.ppt
《身份验证授权和登录控件.ppt》由会员分享,可在线阅读,更多相关《身份验证授权和登录控件.ppt(61页珍藏版)》请在三一办公上搜索。
1、身份验证、授权和登录控件,西源软件培训中心,回顾,母版页母版页所在位置嵌套母版页内容页样式外观主题及配置文件 主题和外观内容主题和外观作用,课程目标,理解身份验证理解Windows集成认证掌握Forms验证理解身份授权理解基于角色的安全技术的特点 掌握ASP.NET 2.0基于角色的安全技术的特点 理解基于角色的安全技术的准备工作 掌握利用控件创建安全页 理解登录成员资格服务掌握用户管理掌握角色管理 理解使用成员资格和角色管理器API,用户注册及登录,基本上所有系统都需要实现用户的注册、登录、修改用户密码等功能。,身份验证和授权的需求,ASP.NET 2.0 的成员和角色管理简化了用户管理的功
2、能,用户的管理和验证只与提供者打交道,而不需要关注数据库本身的细节。现在 ASP.NET 2.0 包含对成员资格(用户名/密码凭据存储)和角色管理服务开箱即用的内置支持。由于所有这些服务都是提供程序驱动的,因此可以方便地交换出再用开发人员自己的自定义实现替换。,身份验证概念,身份验证(authentication)是一个标识应用程序客户端的过程,这里的客户端可能包括终端用户、服务、进程或计算机,通过了身份验证的客户端被称为主体(principal)。身份验证可以跨越应用程序的多个层发生。终端用户起初由Web应用程序进行身份验证,通常根据用户名和密码进行;随后终端用户的请求由中间层应用程序服务器
3、和数据库服务器进行处理,这这个过程中也将进行身份验证以便验证并处理这些请求。,ASP.NET身份验证模式,与Microsoft Internet信息服务(IIS)一起使用的ASP.NET可以使用以下任意一种身份验证方式来验证用户凭据(如用户名和密码):Windows:基本、摘要式或集成Windows身份验证(NTLM或Kerberos)。Forms身份验证,可以通过该身份验证在应用程序中创建登录页并管理身份验证。Microsoft Passport身份验证。None。,基于Windows的身份验证,如果应用程序使用Active Directory用户存储,则应该使用集成的Windows身份验证
4、。对ASP.NET应用程序使用集成Windows身份验证时,最好的方法是使用ASP.NET的Windows身份验证提供程序附带的Internet信息服务(IIS)身份验证方法。,基于Windows的身份验证,如ASP.NET针对Windows身份验证进行配置,具体启用配置参见以下代码:ASP.NET依靠IIS,利用配置好的身份验证模式对其客户端进行身份验证。IIS通过检查特定应用程序的原数据库设置来确定其身份验证模式。集成Windows身份验证最适合于Intranet环境,其中的客户端计算机和Web服务器计算机都是相同(即信任的)域的一部分。,基于Windows的身份验证示例,创建一个基于Ht
5、tp类型的网站。添加一个“添加新项”按钮,添加一个Web配置Web.Config文件。在Web.Config中设置验证方式为Windows:添加一个Web窗体页,在Page_Load事件中输入以下代码:在运行本例子之前,需要在IIS的“目录安全性”选项卡中禁止匿名访问,启用“Windows集成身份验证”。具体设置,在IIS中选择当前项目应用程序的虚拟文件夹,右键选择“属性”。在“属性”对话框中,选择“目录安全性”,如图所示。点击匿名访问和身份验证控制中的“编辑”,弹出“身份验证方法”对话框,如图所示。在图中去掉“匿名访问”选项,选中“集成Windows身份验证”。当用户以 访问时,会提示用户输
6、入用户名和密码,ASP.NET应用程序会以指定的帐号身份运行,protected void Page_Load(object sender,EventArgs e)Response.Write(HttpContext_User 信息:);Response.Write(页面当前用户 HttpContext_User:+);Response.Write(页面当前用户身份验证是否成功 HttpContext_User:+);Response.Write(页面当前用户身份验证方式 HttpContext_User:+);Response.Write(OperatingSystem_ThreadIden
7、tity 信息:);Response.Write(系统用户标识名字 OperatingSystem_ThreadIdentity:+System.Security.Principal.WindowsIdentity.GetCurrent().Name);Response.Write(系统用户身份验证是否成功 OperatingSystem_ThreadIdentity:+System.Security.Principal.WindowsIdentity.GetCurrent().IsAuthenticated);Response.Write(系统用户身份验证方式 OperatingSystem
8、_ThreadIdentity:+System.Security.Principal.WindowsIdentity.GetCurrent().AuthenticationType);,基于窗体的身份验证,基于窗体的身份验证是一项ASP.NET身份验证服务,它使应用程序能够提供自己的登录用户界面并进行自己的凭据验证。ASP.NET对用户进行身份验证,将未经身份验证的用户重定向到登录页,并执行所有必要的Cookie管理。应用程序必须配置为使用基于窗体的身份验证,方法是将设置为Forms,并拒绝匿名用户访问。下面的示例演示如何在所需应用程序的Web.config文件中完成此操作:,元素,基于窗体的
9、身份验证来配置要使用的Cookie的名称、保护类型、用于登录页的URL、Cookie有效的时间长度,以及用于已发出的Cookie路径。下表显示元素的有效属性,该元素是下面示例中显示元素的子元素:,元素,Forms验证示例,在Web.Config配置了应用程序后,配置见下面代码,需要提供一个登录页。比如在示例中添加一个简单的登录页。该示例在运行时需要Default.aspx页。未经身份验证的请求被重定向到登录页(Login.aspx),该页显示一个简单窗体,提示用户输入电子邮件地址和密码。(使用Username=和Password=tsinghuait作为凭据。),Forms验证示例,验证了凭据
10、后,应用程序调用以下内容(userEmail是TextBox控件,PersistCookie是CheckBox控件):FormsAuthentication.RedirectFromLoginPage(UserEmail.Value,PersistCookie.Checked),Forms身份验证的不同情况处理,第一种情况,整个站点都需要登录才能访问,但需要有注册页面,实现方法如下。在应用程序根目录下的配置文件Web.Config中的配置为:在根目录下创建了Login.aspx,为了便于查看,采用图文结合模式。以上情况在做后台管理程序时也是可以使用的。,Forms身份验证的不同情况处理,第二种
11、情况,有权限的页面和没有权限的页面混合在一起,在此情况下,需要去掉配置文件中拒绝节。具体内容如下:然后,每个需要验证的页面都需要开发人员自己进行判断是否通过验证,其部分代码如下:protected void Page_Load(object sender,EventArgs e)if(=)Response.Redirect(Request.ApplicationPath+/login.aspx?url=+();,Forms身份验证的不同情况处理,第三种情况,不同的目录使用不同的登录页面。先设置Web.Config内容,设置每个子文件或者目录的配置信息,具体可参见一下:接着,创建不同用户的登录页
12、面“CommonUserLogin.aspx”和“AdminUserLogin.aspx”,页面上包含登录用表单。然后,创建不同用户可以访问的目录“CommonUser”和“AdminUser”。最后,在Login.aspx页面中,对转过来的地址进行判断,判断其来路,然后再进行转向到不同的登录文件。protected void Page_Load(object sender,EventArgs e)string comeFromUrl=;if(Request.QueryStringurl!=null)/下面这个过程是分解所在的目录,这里可以根据实际情况看是否处理。comeFromUrl=Req
13、uest.QueryStringurl;comeFromUrl=comeFromUrl.Remove(0,+1);comeFromUrl=comeFromUrl.Substring(0,comeFromUrl.IndexOf(/,0);Response.Redirect(comeFromUrl+login.aspx?url+();,Forms身份验证所使用的Cookie由类的序列化版本组成。信息包括用户名(但没有密码)、使用的Forms身份验证版本、发出Cookie的日期以及可选的应用程序特定数据的字段。通过使用FormsAuthentication.SignOut方法,应用程序代码可以撤消或
14、移除身份验证Cookie。这将移除身份验证Cookie,不论它是临时的还是永久的。,Forms身份验证的不同情况处理,在验证凭证中存储自定义信息,在Forms身份验证的票证中可以UserData属性中存储自定义信息,但是,这些信息必须确保UserData属性的大小不会导致Cookie或过长。if()=tsinghuait),在其他的任何页面,就可以取得自定义的信息了。protected void Page_Load(object sender,EventArgs e)if(User.Identity!=null)FormsAuthenticationTicket FormAt=(FormsId
15、entity)User.Identity).Ticket;Response.Write(自定义信息:+FormAt.UserData);,授权用户和角色,ASP.NET用于控制对URL资源的客户端访问。它对于生成请求的HTTP方法(GET或POST)是可配置的,并且可配置为允许或拒绝访问用户组或角色组。下面的示例演示向名为someone的用户和名为Admins的角色授予访问权。所有其他用户的访问被拒绝。允许的授权指令元素为allow或deny。每个allow或deny元素都必须包含users或roles属性。通过提供一个逗号分配的列表,可在单个元素中指定多个用户或角色。有两个特殊的用户名,见表
16、,基于角色的安全技术,互联网(Internet)虽然是一个面向全球的开放型网络系统,然而其中有些网页并不是对所有用户都无条件开放的。例如:一些用于公司内部管理的网页只对公司内部的人员开放;有些网站设立的收费项目,只对那些进行了注册并交纳了费用的用户开放;有些商业网站实行“会员制”,只有经过注册的会员,才有权参加某些商业交易活动;一些远程教育网站允许学生查阅自己的成绩但不允许修改成绩。类似的情况还可以列出很多,这些情况给网站的设计提出了新的要求:为了网站的合法权益和网络安全,必须对一些特定的网页实施保护;当用户进入时要进行身份认证,并在认证的基础上分配资源。,基于角色的安全技术,基于角色的安全技
17、术目前已经成为大多数网站必备的功能,然而设计这项功能并不简单,若使用传统的方法,需要使用十几个标准控件,编写上百行代码,并经过反复的调试才能完成。现在ASP.NET 2.0与IIS服务器相结合,在框架的支持下,对传统的方法做了很大的改进,系统提供了强大的工具和若干组合控件。利用这些工具可以采用简易的方法,快速开发出功能完备的具有基于角色的安全技术的程序。围绕基于角色的安全技术,本章将讲述以下几方面的内容:基于角色的安全技术的特点ASP.NET 2.0基于角色的安全技术的新特点基于角色的安全技术的准备工作利用控件创建安全网页直接调用Membership API 方法,基于角色的安全技术,基于角色
18、的安全技术的特点 ASP.NET 2.0基于角色的安全技术的特点 基于角色的安全技术的准备工作 利用控件创建安全页 直接调用Membership API方法,基于角色的安全技术的特点,网站中可以包括多个入口 基于角色的安全技术是有层次的,网站中可以包括多个入口,在桌面系统中,由于入口点比较集中,因此为了保护某些窗体,主要方法就是先给用户建立注册表,表中载入用户的相关信息,然后在窗体的入口处设置登录界面来检查来访的用户,看看该用户是否在注册表中注册,如果已经注册再看看属于什么身份,然后根据其身份跳转到相应的入口。然而网站与此不同,它是一个开放型的系统,很多网页都有自己的URL,用户通过URL可以
19、直接访问这些网页,因此网站的入口点很多。这种情况下,即使设置了登录网页,用户还可以绕过它直接进入其他网页。因此,为了保护网页需要给这些网页实施保护,或者先将它们集中到某个子目录下,再给该目录实施保护。,基于角色的安全技术是有层次的,基于角色的安全技术是有层次的。例如,有些网页只对一部分人员开放,而这部分被允许访问的人员中允许访问的范围也是有区别的。应该根据人员的分工或职务进一步给他们分配资源。为了管理用户,应该先将用户划分成登录用户和非登录用户,再将登录的用户区分成不同的“角色”,并为这些“角色”赋予不同的访问权限。这些权限有的还需要不定时地进行调整。以交费网页为例,用户交费以前和交费以后的访
20、问权限是不同的。在传统的基于角色的安全技术中,首先要给被保护的网页设置保护措施(如用Session对象进行保护等),并且给用户建立注册表,在注册表中注明用户的姓名、密码以及分配的角色等。用户的认证实质上是一个查询过程。当用户进入登录页面时,先要求用户输入自己的姓名和密码,然后到注册表中去查询。如果在表中找到了可以匹配的记录时,说明该用户已经进行了注册,然后取出用户对应的角色字段,根据分配给角色的权限让用户转入相应的网页。,ASP.NET 2.0基于角色安全技术特点,在ASP.NET 2.0中,为了进行用户管理和保证网页安全,系统提供了完善的服务。包括提供了一个网站管理工具和7个组合控件。当给网
21、站配置好安全设置以后(见下一个问题)系统还将在应用程序的“App_Data”专用目录下创建专用数据库(通常取名为ASPNETDB.MDF)和若干专用数据表,这些表包括用户的注册信息、角色信息以及为个性服务所需要的信息等。系统不仅自动建立了这些表格,还将自动存入这些信息,在注册表中进行查询等项工作全面地实现了自动化。在这些工具的支持下,设计者只需做一些简单的设置,就能设计出功能比较完备的应用基于角色的安全技术的网页。,ASP.NET 2.0基于角色安全技术特点,在ASP.NET 2.0中基于角色的安全技术包括以下两方面的工作。用户认证方面 创建新用户登录用户用户修改密码恢复用户密码状态和其他有关
22、信息权限管理方面给用户划分角色给角色分配资源,基于角色的安全技术的准备工作,组织好站点中的文件 利用网站管理工具进行安全配置,组织好站点中的文件,为了集中入口点,最好建立若干子目录,并且将安全等级相同的网页放在同一个子目录下,然后在各个子目录的根目录下设置Web.config文件,利用该文件配置安全策略。这就好比一个单位中包括一些需要保密的部分,可以先将它们放到专门的办公楼里,并在办公楼的入口处设立保卫人员以检查来访的用户。Web.config文件就相当于各个办公楼的保卫人员。下图是一个目录分布的示意图。其中从上而下:第一个Web.config文件用来保护admin目录下的文件;第二个Web.
23、config文件用来保护manager目录下的文件;第三个Web.config文件用来保护网站根目录下的文件;Web.config文件之间的定义有继承关系,若子目录的定义不同于父目录时,子目录下的文件按照子目录的定义执行。,利用网站管理工具进行安全配置,利用网站管理工具进行安全配置,利用网站管理工具进行安全配置,网站的安全设置包括增加“用户”(User)、定义“角色”(Role)、指定“访问规则”(Access Rule)三大部分。可以利用下面的三个方框分别进行设置,也可以利用系统提供的“安全设置向导”的智能提示逐项进行设置。下面重点介绍使用安全设置向导来设置的 方法。选择【使用安全设置向导按
24、部就班地配置安全性】,在出现的对话框中单击【下一步】进入第二步。在【选择访问方法】对话框中提供了internet和intranet两种选择,这里选择【通过internet】项,再单击【下一步】。在【高级提供程序设置】对话框中提示:若要更改应用程序的数据存储区,请退出【安全向导】,然后单击【提供程序配置】选项卡。使用【提供程序配置】选项卡可以配置网站管理数据的存储方式。这里不改变数据存储区,即仍然使用默认提供的SQL Server数据库存储数据。因此只要单击【下一步】即可。,利用网站管理工具进行安全配置,在步骤4中,系统会询问是否创建基于角色的应用,如果应用中需要用到角色,就必须勾选【为此网站启
25、用角色】复选框,然后单击【下一步】时,进入如图18.4所示的界面。本界面中表示已经创建了2个角色(如果第一次创建,将不含任何角色),如果需要增加新角色时,先在【新角色名称】输入框中输入新角色名,然后单击【添加角色】按钮即可。如果需要删除某种角色时,只要单击该角色名右方的【删除】即可。处理完成以后单击【下一步】。在步骤5中,要求增添新用户,在这一步中可以输入用户名,密码,E-mail等信息。具体做法将在下一节中讲述。单击【下一步】。在步骤6中,要求确定访问的规则。此时弹出的界面所示。,利用网站管理工具进行安全配置,图中的左边窗口中列出的是网站的目录,中间窗口的【角色】下拉列表中将列出角色名(下面
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 身份验证 授权 登录 控件

链接地址:https://www.31ppt.com/p-6377413.html