资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,角色控制与管理,1,认证与授权机制,使用用户管理控件,成员资格与角色管理,2,2.0 安全性,对于网站而言,用户身份认证与权限管理是非常重要的部分。,用户身份认证,通过用户名和密码,对用户进行身份验证,并指派可访问的资源,用户权限管理,根据用户的身份进行权限识别,不同用户访问相同页面,显示不同内容,3,2.0 角色控制,2.0的membership和role manager,对用户的登陆信息进行统一管理,就用户的权限进行分类管理,设定网站权限与安全性,2.0的Login控件提供了建造登陆与用户管理信息的方法,4,1 认证与授权,通过与IIS协同工作来进行授权管理。共两种身份认证方式,通过查询acls列表(运行访问列表)或者许可证来判定访问是否拥有浏览的权利,通过URL认证,5,1.1 认证方式,两种授权方式分别会进行不同的动作,第一种认证方式会根据用户的登陆信息来判定该用户的系统帐号,然后再判断该帐号是否对被请求的本地资源有访问权限。(IIS配置实现),第二种身份认证方式通过检查配置文件来进行授权认证。(配置文件授权),6,认证方式,通过修改config文件中的authentication属性,可以配置不同的认证方式,的页面认证方式中,可以使用以下三种方式进行身份认证,7,认证方式,取值,描述,None,不进行授权与身份验证,Windows,基于windows身份验证,首先判断windows用户的身份和组(域用户),Forms,基于cookie的身份认证机制,PassPort,使用Passport SDK进行二次开发,8,认证方式,9,1)Windows认证方式,Windows认证方式通过使用,windowsprincipal类对用户的windows身份进行判定,然后根据用户所属的windows身份组来进行认证。,需要在web.config里加上,10,User对象(用户对象),Identity,Name:获取当前用户的名称,AuthenticationType:获取所使用的身份验证的类型,使用操作系统的用户信息,局域网环境,例WindowsAuthentication_1.aspx,11,2)Forms认证方式,Forms认证方式是在窗体内提供用户输入ID和密码的地方,并根据用户输入的ID和密码进行身份认证。,Forms认证方式使用cookie记录用户的信息,当用户访问其他页面的时候,程序通过访问cookie来获得用户的身份信息。,12,Forms认证方式配置文件, ,13,Forms认证配置文件,属性,描述,loginUrl,指定一个用于登陆的页面,name,Cookie的名字,注意,如果一个服务器有很多应用的话,要给cookie不同的名字,TimeOut,Cookie的存活时间默认值是30分钟,Path,Cookie的保存路径,Protection,Cookie被保存的方式,14,Protection属性,Protection是用来描述cookie的保存方式,属性,描述,None,不使用任何方法保护cookie,Encryption,使用des或者三层des对cookie进行加密,但是并不对cookie传输中是否被监听或篡改进行监视,Validation,监视cookie,保证传输过程中不会被监听或者篡改。但是并不对cookie进行加密。,All,同时使用Encryption和Validation,15,使用Forms认证,应用程序的根目录中有 Web.config 文件, 1. 添加认证方式, 2. 若未找到包含请求内容的身份验证 Cookie ,转向, 3. 添加授权, 4.拒绝未通过身份验证的用户,16,程序中指定用户的Form验证,FormsLogin_2.aspx,信息正确,使用,FormsAuthentication.RedirectFromLoginPage(userName , createPersistentCookie ),将经过身份验证的用户重定向到请求的URL或default.aspx,userName,经过身份验证的用户名。,createPersistentCookie,若要创建持久 Cookie(跨浏览器会话保存的 Cookie),则为 true;否则为 false。,17,Default.aspx,未登陆用户,被web.config中引导到登陆页面,使用,获取登陆用户信息,使用FormsAuthentication.SignOut()注销用户,必须加载,Import Namespace System.Web.Security,或,18,使用文件记录用户的帐户和密码,用户通过指定可访问的用户名和密码来指定访问用户,密码值已使用 HashPasswordForStoringInConfigFile 方法进行哈希处理,19,使用文件记录帐户信息,在指定密码的保存方式时,可以指定密码的存放方式,有3种方式,Hash 类型,描述,Clear,不加密进行存储,SHA1,使用SHA1进行加密,MD5,使用MD5进行加密,20,SHA1:使用 SHA1 哈希摘要存储密码。为了验证凭据,将使用 SHA1 算法对用户密码进行哈希运算并将计算出来的值与存储的值进行比较。使用该算法可以获得比 MD5 算法高的安全性。,MD5:使用消息摘要 5 (MD5) 哈希摘要存储密码。为了验证凭据,将使用 MD5 算法对用户密码进行哈希运算并将计算出来的值与存储的值进行比较。此算法的性能比 SHA1 好。,21,FormsAuthentication,生成密码,HashPasswordForStoringInConfigFile( password As String, passwordFormat As String ) As String,password 要进行哈希运算的密码。,passwordFormat 要使用的哈希算法。,返回值,经过哈希运算的密码。,22,验证用户,Authenticate (name As String, password As String ) As Boolean 对照存储在应用程序配置文件中的凭据来验证用户名和密码,name 用户名,password 用户的密码,返回值,如果用户名和密码有效,则返回 true;否则返回 false。,23,生成密码NewUser_4.aspx,用户登陆FormsLogin_3.aspx,24,1.2 授权用户与角色,用户访问还可以通过定制访问规则来实现对用户的角色分配。,以上代码指定只有someon的用户可以访问该站点,并且该用户具有的权限是管理员,25,授权用户信息,在web.config里,同样可以通过配置allow和deny属性来对访问用户的Id,访问方法进行设定,26,User属性的描述,User属性有两种配置方法,UserName,描述,*,所有用户,?,匿名用户,27,2 使用用户管理控件,Login,Loginstatus,CreateUserWizard控件,页面在根目录下可正常,密码:至少七位,一个特殊字符,28,Login控件,createUserText,:新用户注册页的链接文本,CreateUserUrl,:新用户注册页的,URL,DisplayRememberMe,:是否显示复选框以使用户可以控制是否向浏览器发送持久性,Cookie,FailureAction,:登录尝试失败时发生的操作,FailureText,:登录尝试失败时显示的文本,LoginButtonText,:,Login,控件的登录按钮的文本,LoginButtonType,:呈现,Login,按钮时使用的按钮类型,29,Login控件,PasswordLabelText,:,Password,文本框的标签文本,PasswordRequiredErrorMessage,:密码字段为空时在,ValidationSummary,控件中显示的错误信息,RememberMeText,:“记住我”复选框的标签文本,TitleTextStyle,:,Login,控件中标题文本的外观,UserNameLabelText,:,UserName,文本框的标签文本,UserNameRequiredErrorMessage,:当用户名字段为空时在,ValidationSummary,控件中显示的错误信息,30,设计,site.master,添加,loginstatus,,设定并,loginstatus,选择视图(注销),设计,login.aspx,使用母版,(以下同),添加,login,控件,自动套用格式,设定,CreateUserUrl,设计,CreateUser.aspx,添加,CreateUserWizard,控件,设计,Default.aspx,添加,loginView,控件,修改视图,LoggedInTemplate,和,AnonymousTemplate,信息,设计,ChangePwd.aspx,添加,changepwd,控件,例登陆/注销和创建用户,hjh, hhhbuu,31,3 用户管理,用户管理分为,成员管理,角色管理,32,例用户和角色管理,网站-配置-安全,用户-选择身份验证类型:Internet(Forms),用户-创建用户(admin, adminbuu, a, Are you OK? OK.),用户-创建用户(abc, abcbuu, ab, Are you OK? OK.),角色-创建或管理角色(admin, normal),用户-管理用户-编辑角色,访问规则-创建访问规则-拒绝匿名、允许等,网站中的各级文件目录,分别设定不同的访问权限,33,在membership网站中,分别查看不同目录下的web.config文件,阅读文档,学习通过程序方式,控制成员和角色,34,3.1 成员管理,成员管理特性基于membership、menbershipuser两个类。可以使用memship类为创建用户,membership类可以完成以下工作,建立一个新的membershipuser,可以对用户身份进行验证,查找一个membershipuser实例,更新一个membershipuser实例,获得当前在线用户数量,删除一个已经不再需要的帐户,35,成员管理,membership类对特定用户管理,访问一个membership示例的属性,找回一个用户的密码,修改一个用户的密码,修改一个用户的密码问题以及密码问题的答案,为一个已经因为多次尝试密码失败而锁定的用户解除锁定。,36,创建用户,通过调用Membership的createuser方法,可以创建用户。,需要注意的是membership的密码要求长于7位,并且需要至少包括一个特殊字符。,37,用户登陆以及访问用户属性,使用Membership中的validateuser方法来确认用户是否合法。,Membership提供getuser方法返回一个membershipuser类,用以获得用户的属性信息。,38,更新用户属性,通过使用dataview和一个Membership相结合,可以方便的修改用户的注册信息。,39,解除锁定,当用户尝试密码次数过多时,系统会把用户的帐户锁定,可以通过Membershipuser的islockout属性来判断用户是否被锁定,如果用户被锁定了,可以使用unlockuser方法来解除锁定。,40,删除用户,可以通过调用Membership的deleteuser方法来删除一个用户。并通过返回值来判定删除是否成功。,41,3.2 角色管理,角色管理是基于认证用户身份与权限的一种管理方式。,使用角色管理,添加和删除角色,42,角色管理,角色管理基于role类实现。,通过角色管理类,可以实现以下工作,新建一种角色,删除一种角色,给一个用户分配角色,去除一个用户的角色,判断用户是否被授权给一个特殊的角色,在一种角色中寻找一个用户,从一个用户信息中获得他所具有的角色信息,43,添加和删除角色,通过使用roles的createrole和deleterole方法可以添加和删除角色,同时还可以调用,44,为用户配置角色属性,可以通过roles类的addusertorole和removeuserfromrole方法来为用户指定一个角色或者移除一个角色,45,使用role manage对页面进行授权,还可以通过使用role manage对指定角色的用户进行页面授权。,通过在web.config里进行配置,46,
展开阅读全文