已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.membership简介membership,真的很有趣,很方便,很有用。介绍给大家。在 ASP.NET 应用程序中,Membership 类用于验证用户凭据并管理用户设置(如密码和电子邮件地址)。Membership 类可以独自使用,或者与 FormsAuthentication 一起使用以创建一个完整的 Web 应用程序或网站的用户身份验证系统。Login 控件封装了 Membership 类,从而提供一种便捷的用户验证机制。Membership 类提供的功能可用于:1)创建新用户。2)将成员资格信息(用户名、密码、电子邮件地址及支持数据)存储在 Microsoft SQL Server 或其他类似的数据存储区。3)对访问网站的用户进行身份验证。可以以编程方式对用户进行身份验证,也可以使用 Login 控件创建一个只需很少代码或无需代码的完整的身份验证系统。4)管理密码。包括创建、更改、检索和重置密码等等。可以选择配置 ASP.NET 成员资格以要求一个密码提示问题及其答案来对忘记密码的用户的密码重置和检索请求进行身份验证。默认情况下,ASP.NET 成员资格可支持所有 ASP.NET 应用程序。默认成员资格提供程序为 SqlMembershipProvider 并在计算机配置中以名称 AspNetSqlProvider 指定。SqlMembershipProvider 的默认实例配置为连接到 Microsoft SQL Server 的一个本地实例。2.membership在sql server中的设置要使用membership,需要对数据库进行一些设置,使用过membership的朋友知道,数据库中有一些固有的表、视图和存储过程,我们自己的表中没有这些东西。不过,我们可以通过向导来创建它们,那就是aspnet_regsql.exe,一般来说它位于:C:WINDOWSMicrosoft.NETFrameworkv2.0.50727(我的就在这里)它既可以创建数据库中的选项,也可以移除这些设置。在运行这个程序之前,我在sql server2005中建立了一个空的数据库:membershipdemo。建立membershipdemo后,我们运行aspnet_regsql.exe,指定membership为membershipdemo。attach34768/attach完成之后,空空的数据库就有很多内容了,不过具体的内容暂时不必管。继续后面的内容。attach34769/attach3.配置web.configweb.config也是要修改的。在system.web节点下添加authentication节点membership既然是用于成员资格管理,当然要求登录验证身份,所以首先加上一个forms验证。CODE: 同样在system.web节点下添加membership节点CODE:属性解释说明:defaultProvider:提供程序的名称。默认为 AspNetSqlMembershipProvider。如果你有多个Provider的话,指定一个默认值是明智的做法userIsOnlineTimeWindow:指定用户在最近一次活动的日期/时间戳之后被视为联机的分钟数。hashAlgorithmType:用于哈希密码的算法的标识符,或为空以使用默认哈希算法。connectionStringName:membership数据库的连接名称。enablePasswordRetri:指示当前成员资格提供程序是否配置为允许用户检索其密码。enablePasswordReset:指示当前成员资格提供程序是否配置为允许用户重置其密码。requiresQuestionAndAnswer:指示默认成员资格提供程序是否要求用户在进行密码重置和检索时回答密码提示问题。applicationName:应用程序的名称。requiresUniqueEmail:指示成员资格提供程序是否配置为要求每个用户名具有唯一的电子邮件地址。passwordFormat:指示在成员资格数据存储区中存储密码的格式。值可选Clear、Encrypted 和 Hashed。Clear 密码以明文形式存储,这可以提高存储和检索密码的性能,但安全性较差,当数据源安全性受到威胁时此类密码很容易被读取。Encrypted 密码在存储时进行了加密,可以在比较或检索密码时进行解密。此类密码在存储和检索时需要进行额外的处理,但比较安全,在数据源的安全性受到威胁时不容易被获取。Hashed 密码在存储到数据库时使用单向哈希算法和随机生成的 salt 值进行哈希处理。在验证某一密码时,将用数据库中的 salt 值对该密码进行哈希计算以进行验证。无法检索哈希密码。maxInvalidPasswordAttempts:锁定成员资格用户前允许的无效密码或无效密码提示问题答案尝试次数。minRequiredPasswordLength:密码所要求的最小长度。minRequiredNonalphanumericCharacters:有效密码中必须包含的最少特殊字符数。passwordAttemptWindow:在锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数。这是为了防止不明来源反复尝试来猜测成员资格用户的密码或密码提示问题答案的额外措施。passwordStrengthRegularExpression:计算密码的正则表达式。为membership配置web.config后,再配置其角色管理roleManager也是在system.web下CODE:属性解释说明:cacheRolesInCookie:指示当前用户的角色是否已缓存在某个 Cookie 中。当 CacheRolesInCookie 属性在配置文件中设置为 true 时,每个用户的角色信息就会存储在客户端上的某个 Cookie 中。当角色管理检查确定某个用户是否属于某个特定角色时,在调用角色提供程序在数据源中检查角色列表之前,将先检查角色 Cookie。该 Cookie 在客户端上会动态更新以缓存最近已验证的角色名称。web.config就配置差不多了。真正步入正题。4.创建用户CreateUserWizard控件在vs2005中创建一个aspx页面,取名CreateUserWizard.aspx。直接从toolbox中拖入一个CreateUserWizard控件,设置一下FinishDestinationPageUrl属性,该属性指示用户创建完成后,用户点击“继续”后定向的页面。CODE: 现在不做任何设置,在vs2005的中design视图中可以看到测试一下先!提交,出现下面结果:attach34772/attach所以,正确设置membership后,注册用户就立马可以使用了。这CreateUserWizard的默认模板你也可以自己创建你需要的模板vs2005可以帮你转换出来你可以修改一下,转换后就是这样代码会很多5.用户登录login控件CreateUserWizard可以直接拖出来用,login控件也是一样。在页面中放入一个login,代码很简单CODE: 属性解释:DestinationPageUrl:设置在登录尝试成功时向用户显示的页面的 URL。PasswordRecoveryText:设置密码恢复页链接的文本。PasswordRecoveryUrl:设置密码恢复页的 URL。如果用户忘记密码,可以点击这个链接点找回他的密码。同样,你也可以自写模板。这次先不忙测试。等一下后面的控件!6.显示当前用户的名称LoginName控件这个控件很简单,就是用来呈现用户名的。CODE:如果当前登录的是blueidea,那么显示的就是“您好,blueidea,您目前的身份是:注册用户”。7.检测用户的身份验证状态的LoginStatus控件可以说是最简单的控件了。CODE:它包含两种状态:1)已登录到网站。2)已从网站注销。当用户注销后,会给出一个“登录”的链接,用户可以点击这个链接来登录;当用户登录后,这个控件会自动转变为“注销”状态。8.为不同类别用户呈现不同内容的LoginView控件全部登录控件都可以直接拿来用,不过,这一个我们来做更多一些东西。CODE: 您可以访问:User/Default.aspx 您也可以访问:Admin/Default.aspx 您可以访问User/Default.aspx 您不能访问Admin/Default.aspx 可以看到,这里包含了三个模板:LoggedInTemplate、AnonymousTemplate和RoleGroup的模板。如果定义了LoggedInTemplate模板,那么该用户会看到该模板内的内容,除非该用户属于另一个角色组,且该角色组在已在RoleGroups的模板中的定义。当匿名用户访问站点时,AnonymousTemplate内的内容会呈现给该用户。在前面我们配置的web.config中启用了角色,我们现在为admin角色定义一个模板,你可以在上面的代码中找到。到现在,我们就可以测试一下效果了。可以看到,我们还没有登录,AnonymousTemplate的内容呈现在我们的面前。而且其中的LoginStatus显示的状态是“登录”状态。我们登录一下,前面注册了一个用户,登录一下。LoggedInTemplate没有起作用,而是member的角色模板起作用,这是因为,其实我们在CreateUserWizard做了设置,新用户注册以后直接纳入member角色组了。在CreateUserWizard的CreatedUser事件中添加一句简单的话:CODE: protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e) Roles.AddUserToRole(CreateUserWizard1.UserName, member); 再来解释一下上面的的“你可以访问”是什么意思。在此之前我其实已经添加了两个角色:member和admin。角色添加方法很简单:在vs2005中选择网站-ASP.NET配置-安全-创建或管理角色跟上面的的配合,我们添加一个角色叫“admin”。再选择“创建访问规则”来创建访问规则。给admin文件创建下面规则,如图示:拒绝member组和匿名用户,只允许admin组的用户访问admin文件夹。给user文件夹创建如下访问规则。拒绝匿名用户,允许member组和admin组的用户。当新注册用户登录后,它们可以访问到user文件夹下的文件但是,如果访问admin文件夹时则会被定向到登录页。9.更改密码的ChangePassword控件如果更改密码,就使用它来修改。CODE: 不需要设置,就可以修改密码了。attach
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年防火灾小班教案
- 广东省揭阳市高中政治 5.2新时代的劳动者教学设计 新人教版必修1
- 2026散装纸浆原料森林认证与绿色采购趋势报告
- 2026集成电路封装测试产业市场发展分析及未来趋势与投资策略报告
- 2025-2026学年高中数学的教案
- 2026医疗器械研发行业市场准入与投资质量控制分析报告
- 2026绿色建筑行业市场供需趋势分析及投资风险评估研究报告
- T/SAWP 003-2024水中微生物含量的测定 三磷酸腺苷(ATP)生物发光法
- 高中英语牛津译林版(2019)必修第一册Unit1Backtoschool教案设计
- 2025-2026学年踩住小老鼠教案
- 思想道德与法治2023年版电子版教材-1
- 大物下册考试试题及答案
- 中华全国律师协会律师办理建设工程法律业务操作指引
- DB32/T 4462-2023河道管理范围内建设项目防洪评价技术规程
- 教学设计与教案的区别
- 2024年浦东新区社区工作者招聘笔试真题
- 加油站防雷制度档案
- 光隔离器与光耦合器考核试卷
- 《食品原料学》课件-第一章 食品原料学研究与发展
- 发展汉语-初级读写-第一课-你好
- 福建睿宏硅材料科技有限公司二甲基硅油生产项目 环境影响报告
评论
0/150
提交评论