第9章 用户和角色管理_第1页
第9章 用户和角色管理_第2页
第9章 用户和角色管理_第3页
第9章 用户和角色管理_第4页
第9章 用户和角色管理_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

第9章用户和角色管理1编辑课件本章要点:了解Windows验证;掌握Forms验证掌握网站管理工具的应用掌握登录系列控件的应用掌握常用的Membership和Roles类的方法2编辑课件目录9.1身份验证和授权9.1.1Windows验证9.1.2Forms验证9.2成员资格和角色管理概述9.2.1成员资格管理9.2.2角色管理9.3利用网站管理工具实现成员资格和角色管理3编辑课件目录9.4利用登录系列控件建立平安页9.4.1Login控件9.4.2CreateUserWizard控件9.4.3LoginName控件9.4.4LoginStatus控件9.4.5LoginView控件9.4.6ChangePassword控件9.4.7PasswordRecovery控件9.5调用Membership类和Roles类进行用户角色管理9.6小结4编辑课件9.1身份验证和授权身份验证:要告知效劳器发出请求的用户是谁。授权:需确定用户能访问哪些资源。身份验证方式:Windows验证、Passport验证、None验证和Forms验证。5编辑课件9.1.1Windows验证基于Windows操作系统用户和用户组,适合于企业内部站点使用。要运用Windows验证,效劳器端和客户端都必须是Windows操作系统,且Web效劳器的硬盘格式必须是NTFS。6编辑课件9.1.1Windows验证〔续〕Windows验证方式依靠IIS来执行所需的用户验证,包括匿名身份验证、集成Windows身份验证、Windows域效劳器的摘要身份验证和根本身份验证等。访问WindowsIdentity和WindowsPrincipal对象可获取验证用户的信息。需配合使用Windows的NTFS访问控制列表〔ACL〕。7编辑课件配置网站Windows验证右击某站点→“属性〞→“目录平安性〞→单击“身份验证和访问控制〞中“编辑〞8编辑课件配置网站Windows验证〔续〕在Windows中新建一个用户组,例如“Website〞。在“Website〞组中创立假设干用户。设置站点对应文件夹的授权。9编辑课件配置网站Windows验证〔续〕配置站点的web.config文件,代码如下:<system.web> <authenticationmode="Windows"/> <identityimpersonate="true"/></system.web>10编辑课件配置网站Windows验证〔续〕在联网的另一台计算机访问站点中网页时,要求输入用户名和密码。通过身份验证后才能访问相应的网页。11编辑课件9.1.2Forms验证适合于Internet站点,是多数Web应用程序使用的方式。Forms验证本身并不能进行验证,只是使用自定义的用户界面收集用户信息,再通过自定义代码实现验证。在使用时,需配合使用ASP.NET成员资格和角色管理。其中,成员资格用于管理用户,角色用于管理授权。12编辑课件9.1.2Forms验证〔续〕用户利用Forms验证访问受保护资源步骤用户请求受保护的网页,如Default.aspx;ASP.NET调用Forms验证效劳获取用户请求,并检查其中是否包含用户凭据;如果未发现任何用户凭据,将自动转向用户登录页面,如Login.aspx;初次请求的网页地址Default.aspx将以ReturnUrl值〔ReturnUrl是QueryString中的键值对〕的形式,附加在登录网页Login.aspx的地址后。当用户通过验证后,ASP.NET将根据ReturnUrl值把页面重定向到Default.aspx。13编辑课件9.1.2Forms验证〔续〕Forms验证的配置<authenticationmode="Forms"><formsname="Hstear" loginUrl="Login.aspx" timeout="40"/></authentication>14编辑课件<forms>配置节属性说明表属性说明name指定用于身份验证的HTTPCookie名。默认值为.ASPXAUTH。loginUrl指定在未找到身份验证信息时需重定向的页面地址,通常是登录页面地址。默认值Login.aspx。path指定身份验证Cookie存放路径。默认值为“/”。protection指定身份地址Cookie使用的加密类型。15编辑课件<forms>配置节属性说明表〔续〕requireSSL逻辑值,指定是否需要SSL连接传输身份验证Cookie。slidingExpiration逻辑值,指定是否使用弹性时间。timeout指定身份验证Cookie的过期时间。defaultUrl指定用户通过身份验证后需重定向的页面地址。默认值为Default.aspx。cookieless指定是否使用Cookie以及使用Cookie的方式。16编辑课件9.1.2Forms验证〔续〕FormsAuthentication类:该类提供的属性与<forms>配置节中的属性有对应关系,可以通过访问类的属性获取<forms>配置节中的属性值。还有,该类提供的方法能够管理Forms验证,如RedirectFromLoginPage()将经过身份验证的用户重定向到最初请求的URL;RedirectToLoginPage()将未经过身份验证的用户重定向到登录页面等。17编辑课件9.2成员资格和角色管理概述成员资格管理功能与登录控件和Forms验证结合使用,可以提供完善的用户管理功能。配合使用角色管理,可以较好地提供授权管理功能。18编辑课件9.2.1成员资格管理能创立和管理用户信息。提供的类能方便地验证用户提交的用户名和密码。ASP.NET3.5还实现了成员资格管理与个性化用户配置、角色管理等功能的集成。19编辑课件9.2.1成员资格管理〔续〕基于提供程序模型构建首先,开发人员使用登录系列控件构建获取用户信息的界面。其次,由登录系列控件调用成员资格管理类中实现验证的方法。最后,成员资格管理类中的对象将与成员管理提供程序交互,要求其对成员管理数据库进行操作。20编辑课件9.2.1成员资格管理〔续〕成员管理数据库以ASPNETDB.mdf存储在App_Data文件夹下。与成员资格管理密切相关的数据表是aspnet_Users和aspnet_Membership。表aspnet_Users存储了用户的局部信息,而aspnet_Membership存储了用户的详细信息。成员资格管理的配置由web.config中<membership>配置节实现。21编辑课件

<provides>的<add>配置节属性说明表属性说明name指定成员资格提供程序的名称。type指定成员资格提供程序的类型。connectionStringName指定成员资格提供程序使用的连接数据库字符串。applicationName指定使用成员数据库的Web应用程序名称。enablePasswordRetrieval逻辑值,指定是否支持取回密码功能。默认值为false。22编辑课件<provides>的<add>配置节属性说明表〔续〕enablePasswordReset逻辑值,指定是否支持重置密码功能。默认值为true。requiresQuestionAndAnswer逻辑值,指定当重置或取回密码时,是否需要输入密码提示问题。默认值为true。requiresUniqueEmail逻辑值,指定存储在数据库中的电子邮件是否唯一。默认值为false。passwordFormat指定密码的存储格式。默认值为Hashed。23编辑课件<provides>的<add>配置节属性说明表〔续〕maxInvalidPasswordAttempts指定允许密码或密码提示问题连续不成功测试的最多次数。默认值为5。passwordAttemptWindow指定跟踪失败的尝试所用的时间。默认值为10分钟。minRequiredPasswordLength指定密码中必须包含字符的最小数量,值范围在1~128之间。默认值为1。minRequiredNonalphanumericCharacters指定密码中必须包含的特殊字符的最小数量。默认值为1。passwordStrengthRegularExpression指定用于密码的正则表达式。24编辑课件连接字符串存放位置说明在SqlDataSource控件的定义中<asp:SqlDataSourceID="SqlDataSource1"runat="server"ConnectionString="DataSource=.\SQLEXPRESS;AttachDbFilename=“E:\Book\MyPetShop.mdf〞; PersistSecurityInfo=True; UserID=saa;Password=sdf@~1;ConnectTimeout=30; UserInstance=False"ProviderName="System.Data.SqlClient"SelectCommand="SELECT*FROM[Category]"></asp:SqlDataSource>25编辑课件9.2.1成员资格管理〔续〕Membership类:主要实现用户验证,创立、管理以及获取或设置<membership>配置节中相关的属性值。MembershipUser类:主要获取或设置用户信息功能。26编辑课件9.2.2角色管理角色是指具有相同权限的一类用户或用户组,与授权有密切关系。基于角色的授权方式将访问权限与角色关联,然后,角色再与用户关联。管理人员授权时,是为角色授权,其影响的是角色中的多个用户。在实际使用时,需要根据不同角色对网页进行分类,并存放到不同的文件夹中。然后,再利用网站管理工具对不同文件夹设置不同的访问规那么实现角色授权。27编辑课件9.2.2角色管理〔续〕ASP.NET3.5角色管理能方便地创立和管理角色信息,如创立新角色、为用户分配角色、删除用户角色、获取角色信息等。能支持使用Cookie缓存角色信息,以防止频繁访问数据源。28编辑课件9.2.2角色管理〔续〕角色管理与成员资格管理一样基于提供程序模型构建。首先利用登录系列控件实现用户登录、角色管理等用户界面。然后,调用角色管理对象实现角色管理功能。最后将角色信息存储到数据库。29编辑课件9.2.2角色管理〔续〕角色管理信息存储于ASPNETDB.mdf,其中与角色有密切关系的数据表是aspnet_Roles和aspnet_UsersInRoles。aspnet_Roles存储角色信息,而aspnet_UsersInRoles存储用户和角色的联系信息。角色管理的配置通过web.config中的<roleManager>配置节实现30编辑课件9.2.2角色管理〔续〕Roles类:访问其属性能获取或设置<roleManager>配置节中的属性值,调用其方法可创立新角色、删除角色等。31编辑课件9.3利用网站管理工具实现成员资格和角色管理

32编辑课件平安设置向导33编辑课件平安设置向导〔续〕34编辑课件平安设置向导〔续〕35编辑课件平安设置向导〔续〕36编辑课件平安设置向导〔续〕37编辑课件访问规那么说明

<?xmlversion="1.0"encoding="utf-8"?><configuration><system.web><authorization><allowroles="Admin"/><denyroles="Member"/><denyusers="?"/></authorization></system.web></configuration>

38编辑课件9.4利用登录系列控件建立平安页任何利用身份验证来实现用户登录,并由此访问受保护资源的Web站点,都需要一系列注册登录界面来完成用户身份验证等任务。经常需要的功能包括用户登录、创立新用户、显示登录状态、显示登录用户名、更新或重置密码等。39编辑课件9.4.1Login控件用于实现登录界面,允许自定义界面外观,与成员资格管理紧密集成。使用时,主要通过设置属性而不需要编写代码就能够实现登录验证功能。实质是一个“用户控件〞,通常必须包括:用于输入用户名的文本框、用于输入密码的文本框和用于提交用户凭证的按钮。40编辑课件9.4.1Login控件〔续〕有很强的自定义扩展能力,主要包括:自定义找回密码页面的提示文字和超链接、自定义创立新用户页面的提示文字和超链接、自定义“下次登录时记住〞的CheckBox控件、自定义模板等等。<asp:LoginID="Login1"runat="server">……</asp:Login>41编辑课件Login控件的主要属性表属性说明CreateUserText指定“创建新用户”链接显示的文本。CreateUserUrl指定“创建新用户”链接的URL。DestinationPageUrl指定用户登录成功时需重定向的URL。DisplayRememberMe逻辑值,指定是否显示“记住我”复选框。默认值为True。FailureAction指定登录失败时采取的操作。值RedirectToLoginPage表示重定向到自定义用户登录页面;值Refresh表示刷新页面并显示错误提示信息。42编辑课件Login控件的主要属性表〔续〕Password获取用户提交的密码。PasswordRecoveryText指定“密码恢复”链接显示的文本。PasswordRecoveryUrl指定“密码恢复”链接的URL。RemberMeSet指定是否选中“记住我”复选框。UserName获取或设置用户名文本框的内容。VisibleWhenLoggedIn逻辑值,指定用户登录成功后Login控件是否可见。默认值为True。43编辑课件实例9-1建立登录页面当输入用户名和密码后,单击“登录〞按钮,假设用户名和密码正确那么链接到Default.aspx,否那么给出错误提示信息;单击“注册新用户〞链接到NewUser.aspx;单击“忘记密码了?〞链接到GetPwd.aspx。源代码:Login.aspx44编辑课件9.4.2CreateUserWizard控件实质是一个专用于创立新用户的Wizard控件,与成员资格管理紧密集成,能快速的在成员数据表中创立新用户。<asp:CreateUserWizardID="CreateUserWizard1"runat="server"><WizardSteps><asp:CreateUserWizardSteprunat="server"/><asp:CompleteWizardSteprunat="server"/></WizardSteps></asp:CreateUserWizard>45编辑课件9.4.2CreateUserWizard控件〔续〕CreateUserWizard控件使用时要与web.config中的<membership>配置节属性信息结合。要求输入的密码为强密码〔即密码至少7个字符、至少包括一个字母和至少包括一个非数字非字母的特殊符号〕,设置属性minRequiredPasswordLength、minRequiredNonalphanumericCharacters。要显示“平安提示问题〞和“平安答案〞,需要设置属性requiresQuestionAndAnswer。46编辑课件9.4.2CreateUserWizard控件〔续〕属性MailDefinition:代表了MailDefinition类的一个对象。MailDefinition类提供了定义一封E-mail需要的所有属性,如属性From指定邮件从哪里发出;属性Subject指定邮件的主题;属性BodyFileName指定要发送邮件的文本等。在使用BodyFileName时,首先需定义一个.txt文件,如ThankEmail.txt。该文件可包含一些特殊表达式如<%userName%>和<%userpassword%>用来代替注册的用户名和密码。47编辑课件9.4.2CreateUserWizard控件〔续〕要发送电子邮件,还要配置<>。<mailSettings><smtpdeliveryMethod="Network"><networkdefaultCredentials="false"host="smtp.126"port="25"userName="jxssg"password="……"/></smtp></mailSettings>48编辑课件9.4.2CreateUserWizard控件〔续〕CreateUserWizard控件的发送邮件功能还可与属性AutoGeneratePassword属性结合,用于验证用户注册的电子邮箱是否正确。49编辑课件CreateUserWizard控件的主要属性和事件表

属性和事件说明ActiveStepIndex获取或设置当前步骤的索引值,值从0开始。Answer获取或设置对密码问题的答案。ConfirmPassword获取用户输入的确认密码。ContinueDestinationPageUrl获取或设置在用户单击成功页上的继续按钮后将重定向到页面的URL地址。DisableCreatedUser逻辑值,指定是否允许新用户登录到网站。默认值为false。50编辑课件CreateUserWizard控件的主要属性和事件表〔续〕Email获取或设置用户输入的电子邮件地址。LoginCreatedUser逻辑值,指定是否在创建用户后登录新用户。默认值为true。Password获取用户输入的密码。Question获取或设置用户输入的密码问题。UserName获取或设置用户输入的用户名。CreatedUser事件在成员资格程序创建了新用户后被触发。51编辑课件实例9-2建立新用户当新用户填入注册信息后,假设符合设置的规那么,那么单击“创立新用户〞按钮将把该用户参加到一般的成员角色“Member〞中,并给用户发送感谢注册网站的邮件,再将网页重定向到Login.aspx;当新用户填入的信息不符合设置的规那么时,给出相应的出错提示信息。感谢注册网站的邮件文本:ThankEmail.txt源程序:NewUser.aspx52编辑课件9.4.3LoginName控件用于用户登录验证之后,显示登录的用户名。实际上LoginName显示的是System.Web.UI.Page.User.Identity.Name的属性值。不仅可以显示通过Forms验证的用户名,还可以显示其它登录验证之后的用户名。<asp:LoginNameID="LoginName1"runat="server"/>53编辑课件9.4.3LoginName控件〔续〕LoginName控件的属性FormatString用于格式化输出的用户名。如假设设置FormatString=“Welcome,{0}〞,那么对已登录用户名admin,将在页面上显示“Welcome,admin〞。54编辑课件9.4.4LoginStatus控件实现用户登录状态之间的切换。如果HttpRequest.IsAuthenticated属性返回值为true,那么表示用户通过验证,处于已登录状态,默认显示“注销〞;否那么表示处于未登录状态,默认显示“登录〞。<asp:LoginStatusID="LoginStatus1"runat="server"/>55编辑课件9.4.4LoginStatus控件〔续〕当未登录用户单击“登录〞时将链接到网站根文件夹下的Login.aspx,因此,需要将该文件存放到根文件夹下。当登录用户单击“注销〞时将由LoginStatus控件的属性LogoutAction确定操作方式,值Refresh表示刷新页面;值Redirect表示重定向到LogoutPageUrl属性定义的页面;值RedirectToLoginPage表示重定向到web.config中<forms>配置节的属性loginUrl定义的登录页面。56编辑课件9.4.4LoginStatus控件〔续〕事件LoggingOut:在单击注销按钮时被触发,常用于当用户必须完成某一项活动后才能离开网站的情形。假设未完成该项活动,那么可以通过设置LoginCancelEventArgs参数的属性Cancel值设置为true,到达取消注销过程的目的。事件LoggedOut:在注销完成后被触发,常用于释放数据库连接等。57编辑课件9.4.5LoginView控件根据匿名用户、登录用户或不同角色的用户显示不同的页面内容。<asp:LoginViewID="LoginView1"runat="server">……</asp:LoginView>58编辑课件9.4.5LoginView控件〔续〕AnonymousTemplate:用于设置匿名用户显示的视图内容;LoggedInTemplate:用于设置已登录站点,但不属于属性RoleGroups指定的包含于任何角色的用户显示的视图内容;RoleGroups:用于设置具有特定角色的用户显示的视图内容。当一个用户属于多个角色时,应用程序的执行将对RoleGroups中的集合进行搜索,然后显示第一个匹配的模板内容。59编辑课件实例9-3利用LoginView显示不同界面源程序:Default.aspx程序说明:当用户未登录时直接浏览Default.aspx可看到匿名用户界面。单击“登录〞链接到网站根文件夹下的Login.aspx,以不同角色用户登录后浏览器再跳转到Default.aspx,此时可看到对应角色的不同界面效果。60编辑课件9.4.6ChangePassword控件用于修改用户的登录密码。件集成了成员资格管理功能,支持两种情况的修改密码。一种是用户登录后,提交旧密码和新密码来完成密码修改工作;另一种是用户不登录站点,此时需提交用户名、旧密码和新密码完成密码修改工作。支持向用户发送包含密码已修改提示信息的电子邮件。61编辑课件9.4.6ChangePassword控件〔续〕<asp:ChangePassword ID="ChangePassword1"runat="server"> </asp:ChangePassword>要允许未登录用户修改密码,需设置属性DisplayUserName值为true。内置了两个视图:更改密码视图和成功视图。62编辑课件实例9-4修改用户密码源程序:ChangePwd.aspx63编辑课件9.4.7PasswordRecovery控件适用于用户丧失密码后,需要找回或重置密码的情况。与成员资格管理功能集成,有两种工作方式。一种是找回原有密码,这种模式需要将<membership>配置节的属性passwordFormat值设置为Clear或Encrypted;另一种是得到重置密码,这种模式需设置passwordFormat值为Hashed。因经过Hash计算的密码不可恢复,所以第二种方式只能由系统随机产生一个新密码。最后,控件将找回或重置的密码通过电子邮件通知用户。64编辑课件9.4.7PasswordRecovery控件〔续〕<asp:PasswordRecovery ID="PasswordRecovery1"runat="server"> </asp:PasswordRecovery>使用PasswordRecovery控件时,除与属性passwordFormat有关外,还与<membership>配置节中其它的属性有关。例如,如果已设置requiresQuestionAndAnswer值为true,那么用户在找回密码的过程中将被要求答复平安问题。PasswordRecovery控件内置了三个视图:用户名视图、提示问题视图和成功视图。65编辑课件实例9-5重置用户密码输入用户名,再输入平安问题答案。假设输入的用户名和平安问题答案均正确,将给用户发送包含重置密码的电子邮件。源程序:GetPwd.aspx66编辑课件9.5调用Membership类和Roles类进行用户角色管理

登录系列控件能快速地创立用户管理的平安页,但对删除用户、角色管理等无能为力。这些功能需要直接调用Membership类和Roles类的相关方法实现。67编辑课件Membership类提供的典型方法CreateUser():添加一个新用户。DeleteUser():删除一个指定用户。FindUsersByEmail():根据输入的电子邮件参数获取相关的用户信息集合。GeneratePassword():创立一个特定长度的随机密码。GetAllUsers():获取所有用户的信息集合。ValidateUser():实现对用户的验证。68编辑课件Roles类提供的典型方法AddUsersToRole():将多个用户分配到一个角色中。RemoveUserFromRole():从一个角色中删除一个用户。CreateRole():创立一个新角色。DeleteRole():删除一个指定的角色。69编辑课件Roles

温馨提示

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

评论

0/150

提交评论