您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第12章成员和角色管理
第12章成员和角色管理ASP.NET成员和角色管理是一种网站安全性管理。12.1成员资格概述ASP.NET2.0成员资格(membership)的主要功能是:管理系统的用户,以保证只有合法的登录用户才能使用网站系统的某些页面和功能。尽管开发人员可以设计一个用户表(如在SQLServer中设计一个user表存放用户信息),在Web页面中可以对登录用户进行用户名和密码的验证(即用户输入的用户名和密码是否在user中存在)。这样做一方面比较复杂,另一方面用户数据不一定安全(如用户数据没有加密)。由于所有用户网站登录操作是相似的,所以ASP.NET2.0成员资格就提供了一个通用的安全的用户管理功能,它可以验证和管理Web应用程序的用户信息,提供验证用户凭据、创建和修改成员资格用户及管理用户设置(如密码和电子邮件地址)等功能,主要用于ASP.NETForms身份验证中。LoginLoginStatusLoginView其他登录控件Membership类登录控件层MembershipUser类成员资格API层SqlMembershipProvider其他成员提供程序成员资格提供程序层成员资格数据层SQLServer其他数据库图12.1成员资格体系结构成员资格体系结构如图12.1所示,成员资格数据层用于存放用户的数据。成员资格提供程序层(MembershipProviders)从中取出数据,交给上层的成员资格API层。成员资格API层用其中两个核心类Membership和MembershipUser来管理这些用户数据,并且可以交面网页中的一些用户管理控件(登录控件层)来使用。12.2建立成员资格数据首先要建立成员资格数据,ASP.NET提供了建立成员资格数据的专用工具,称之为注册工具。ASP.NETSQLServer注册工具Aspnet_regsql.exe用于创建供ASP.NET中的SQLServer提供程序使用的SQLServer数据库,或者用于在现有数据库中添加或移除选项。【例12.1】在Stud数据库中建立成员资格数据表。解:其操作步骤如下:①采用Windows的搜索工具查找到Aspnet_regsql.exe程序,双击该程序执行它。②在出现的欢迎使用界面中单击“下一步”按钮。③出现如图12.2所示的“选择安装选项”对话框,单击“下一步”按钮。④出现“选择服务器和数据库”对话框,设置服务器为“LCB-PC”,用户名为“sa”,密码为“123456”,选择数据库为“Stud”,如图12.3所示,单击“下一步”按钮。⑤在出现的确认界面中单击“下一步”按钮。⑥单击“完成”按钮。此时再进入SQLServer2005系统,打开Stud数据库,看到前面的操作后新建了一系列的表,这些表的功能如下:aspnet_Applications。存放数据库所涉及应用程序有关信息。aspnet_Membership。存放与用户相关信息例如:用户登陆密码,创建时间。aspnet_Paths。存放应用程序和目录路径的对应关系数据。aspnet_PersonalizationAllUsers。存放针对所有用户的Web部件个性化设置信息。aspnet_PersonalizationPerUser。存放针对每个特定用户的Web部件个性化设置信息。aspnet_Profile。存放用户配置数据。aspnet_Roles。存放角色信息。aspnet_SchemaVersions。存放用户配置信息支持的模式。aspnet_Users。存放用户基本信息。aspnet_UsersInRoles。存放用户和角色的关系数据。aspnet_WebEvent_Events。存放Web事件相关信息。12.3成员资格提供程序12.3.1SqlMembershipProvider提供程序SqlMembershipProvider提供程序在SQLServer数据库中存储用户名和密码属性说明ApplicationName获取或设置要存储和检索其成员资格信息的应用程序的名称EnablePasswordReset获取一个值,指示SQLServer成员资格提供程序是否配置为允许用户重置其密码EnablePasswordRetrieval获取一个值,指示SQLServer成员资格提供程序是否配置为允许用户检索其密码MaxInvalidPasswordAttempts获取锁定成员资格用户前允许的无效密码或无效密码提示问题答案尝试次数MinRequiredNonAlphanumericCharacters获取有效密码中必须包含的最少特殊字符数属性说明MinRequiredPasswordLength获取密码所要求的最小长度Name获得一个友好名称,用于在配置过程中引用提供程序PasswordAttemptWindow获取时间长度,在该时间间隔内对提供有效密码或密码答案的连续失败尝试次数进行跟踪PasswordFormat获取一个值,表示用于在SQLServer成员资格数据库中存储密码的格式PasswordStrengthRegularExpression获取用于计算密码的正则表达式RequiresQuestionAndAnswer获取一个值,指示SQLServer成员资格提供程序是否配置为要求用户在进行密码重置和检索时回答密码提示问题RequiresUniqueEmail获取一个值,指示SQLServer成员资格提供程序是否配置为要求每个用户名具有唯一的电子邮件地址方法说明ChangePassword修改用户密码ChangePasswordQuestionAndAnswer更新SQLServer成员资格数据库中用户的密码提示问题和答案CreateUser向SQLServer成员资格数据库添加一个新用户DecryptPassword解密已加密的密码DeleteUser从SQLServer成员资格数据库删除用户的成员资格信息EncryptPassword对密码进行加密FindUsersByEmail返回成员资格用户的集合,其中用户的电子邮件地址字段包含指定的电子邮件地址FindUsersByName获取一个成员资格用户的集合,其中的用户名包含要匹配的指定用户名方法说明GeneratePassword生成长度至少为14个字符的随机密码GetAllUsers获取SQLServer成员资格数据库中所有用户的集合GetNumberOfUsersOnline返回当前访问该应用程序的用户数GetPassword从SQLServer成员资格数据库返回指定用户名的密码GetUser从数据源获取成员资格用户的信息GetUserNameByEmail获取与指定的电子邮件地址关联的用户名ResetPassword将用户密码重置为一个自动生成的新密码UpdateUser更新SQLServer成员资格数据库中用户的信息ValidateUser验证SQLServer成员资格数据库中是否存在指定的用户名和密码Machine.config文件中定义了一个名称为AspNetSqlMembershipProvider的默认SqlMembershipProvider实例,该实例连接到本地计算机上的默认SQLServerExpress实例。如果SQLServerExpress以默认实例名安装,则可使用提供程序的此实例;否则,可在ASP.NET应用程序的Web.config文件中定义自己的实例。例如,以下代码配置为使用SqlMembershipProvider的ASP.NET应用程序的Web.config文件:configurationconnectionStringsaddname=SqlServicesconnectionString=DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=aspnetdb;//connectionStringssystem.webauthenticationmode=FormsformsloginUrl=login.aspxname=.ASPXFORMSAUTH//authenticationauthorizationdenyusers=?//authorizationmembershipdefaultProvider=SqlProvideruserIsOnlineTimeWindow=15providersaddname=SqlProvidertype=System.Web.Security.SqlMembershipProviderconnectionStringName=SqlServicesapplicationName=MyApplicationenablePasswordRetrieval=falseenablePasswordReset=truerequiresQuestionAndAnswer=truerequiresUniqueEmail=falsepasswordFormat=HashedmaxInvalidPasswordAttempts=3minRequiredNonAlphanumericCharacters=0minRequiredPasswordLength=6passwordAttemptWindow=10//providers/membership/system.web/configuration12.3.2配置自已的SqlMembershipProvider提供程序配置ASP.NET的连接字符串,定制SqlMembershipProvider提供程序的操作过程如下:①进入Windows控制面板,双击“管理工具”,再双击“Internet信息服务”打开“Internet信息服务”对话框,展开“网站”下的“默认网站”,右击“Myaspnet”,在出现的快捷菜单中选择“属性”命令,单击“ASP.NET”选项卡,单击“编辑配置”按钮,出现“ASP.NET配置设置”对话框。②单击“应用程序设置”窗格的“添加”按钮,出现“编辑/添加应用程序设置”对话框,输入相关内容,如图12.4所示,即建立键名(key)为“LocalSqlServer”的连接字符串,其值(value)为:DataSource=localhost;InitialCatalog=Stud;IntegratedSecurity=False;UserId=sa;Password=123456;”单击“确定”按钮返回。③此时的“ASP.NET配置设置”对话框如图12.5所示。④单击“身份验证”选项卡,出现“身份验证”对话框,如图12.6所示,看到“成员资格”窗格中管理提供程序名为AspNetSqlMemberShipProvider,单击“管理提供程序”按钮。⑤出现如图12.7所示的“提供程序设置”对话框,可以修改相关选项值。这里保持默认值不变。通过连续单击“确定”按钮返回。这样就配置好了自已的SqlMembershipProvider提供程序,其名称为AspNetSqlMemberShipProvider。打开Web.config文件,会看到增加了如下内容:appSettingsaddkey=LocalSqlServervalue=DataSource=localhost;InitialCatalog=Stud;IntegratedSecurity=False;UserId=sa;Password=123456;//appSettings12.4成员资格API12.3.1Membership类Membership类提供常规成员资格功能,如创建一个新用户、删除一个用户、用新信息来更新用户、返回用户列表、通过名称或电子邮件来查找用户、验证(身份验证)用户、获取联机用户的人数和通过用户名或电子邮件地址来搜索用户。属性说明ApplicationName
本文标题:第12章成员和角色管理
链接地址:https://www.777doc.com/doc-2153307 .html