本文目录:
1.membership简介
2.membership在sql server中的设置
3.配置web.config
4.创建用户CreateUserWizard控件
5.用户登录login控件
6.显示当前用户的名称LoginName控件
7.检测用户的身份验证状态的LoginStatus控件
8.为不同类别用户呈现不同内容的LoginView控件
9.更改密码的ChangePassword控件
10.自助找回密码的PasswordRecovery控件
11.总结

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:\WINDOWS\Microsoft.NET\Framework\v2.0.50727(我的就在这里)

它既可以创建数据库中的选项,也可以移除这些设置。

在运行这个程序之前,我在sql server2005中建立了一个空的数据库:membershipdemo。建立membershipdemo后,我们运行aspnet_regsql.exe,指定membership为membershipdemo。

完成之后,空空的数据库就有很多内容了,不过具体的内容暂时不必管。继续后面的内容。

3.配置web.config

web.config也是要修改的。在system.web节点下添加authentication节点。

membership既然是用于成员资格管理,当然要求登录验证身份,所以首先加上一个forms验证。

<authentication mode="Forms">
<forms loginUrl="login.aspx" name=".aspxlogin"/>
</authentication>

同样在system.web节点下添加membership节点。

<membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="15" hashAlgorithmType="">
             <providers>
                 <clear/>
                 <add connectionStringName="ConnectionString" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
             </providers>
         </membership>

属性解释说明:

defaultProvider:提供程序的名称。默认为 AspNetSqlMembershipProvider。如果你有多个Provider的话,指定一个默认值是明智的做法
userIsOnlineTimeWindow:指定用户在最近一次活动的日期/时间戳之后被视为联机的分钟数。
hashAlgorithmType:用于哈希密码的算法的标识符,或为空以使用默认哈希算法。connectionStringName:membership数据库的连接名称。
enablePasswordRetrieval:指示当前成员资格提供程序是否配置为允许用户检索其密码。
enablePasswordReset:指示当前成员资格提供程序是否配置为允许用户重置其密码。
requiresQuestionAndAnswer:指示默认成员资格提供程序是否要求用户在进行密码重置和检索时回答密码提示问题。
applicationName:应用程序的名称。
requiresUniqueEmail:指示成员资格提供程序是否配置为要求每个用户名具有唯一的电子邮件地址。
passwordFormat:指示在成员资格数据存储区中存储密码的格式。值可选Clear、Encrypted 和 Hashed。Clear 密码以明文形式存储,这可以提高存储和检索密码的性能,但安全性较差,当数据源安全性受到威胁时此类密码很容易被读取。Encrypted 密码在存储时进行了加密,可以在比较或检索密码时进行解密。此类密码在存储和检索时需要进行额外的处理,但比较安全,在数据源的安全性受到威胁时不容易被获取。Hashed 密码在存储到数据库时使用单向哈希算法和随机生成的 salt 值进行哈希处理。在验证某一密码时,将用数据库中的 salt 值对该密码进行哈希计算以进行验证。无法检索哈希密码。
maxInvalidPasswordAttempts:锁定成员资格用户前允许的无效密码或无效密码提示问题答案尝试次数。
minRequiredPasswordLength:密码所要求的最小长度。
minRequiredNonalphanumericCharacters:有效密码中必须包含的最少特殊字符数。
passwordAttemptWindow:在锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数。这是为了 防止不明来源反复尝试来猜测成员资格用户的密码或密码提示问题答案的额外措施。
passwordStrengthRegularExpression:计算密码的正则表达式。

为membership配置web.config后,再配置其角色管理roleManager,也是在system.web下。

<roleManager enabled="true" cacheRolesInCookie="true">
      <providers>
      <clear/>
      <add connectionStringName="ConnectionString" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      </providers>
</roleManager>

属性解释说明:
cacheRolesInCookie:指示当前用户的角色是否已缓存在某个 Cookie 中。
当 CacheRolesInCookie 属性在配置文件中设置为 true 时,每个用户的角色信息就会存储在客户端上的某个 Cookie 中。当角色管理检查确定某个用户是否属于某个特定角色时,在调用角色提供程序在数据源中检查角色列表之前,将先检查角色 Cookie。该 Cookie 在客户端上会动态更新以缓存最近已验证的角色名称。
web.config就配置差不多了。

http://hi.baidu.com/freezesoul/blog/item/57a3f31ff79820f1e1fe0b67.html

转载于:https://www.cnblogs.com/iamv/archive/2008/09/11/1289288.html

Membership角色与权限管理相关推荐

  1. Spring Security基于角色的权限管理

    1.Spring Security 1.1核心领域概念 认证(Authentication):认证是建立主体(principal)的过程. 主体通常是指在应用程序中执行操作的用户.设备或其他系统 授权 ...

  2. Vue角色的权限管理

    根据服务器端的数据,对角色的权限管理使用for循环进行遍历,然后渲染了样式 使用element-ui实现布局 文章目录 角色权限的样式 角色权限 分配权限 分配角色功能的实现 接口 删除角色指定权限的 ...

  3. 从零开始——基于角色的权限管理01(补充)

    此博文较为详细的介绍从零开始--基于角色的权限管理01文中的两个部分的流程(解释代码). 1) index.jsp中提交跳转action action的login,获取jsp页面传过来的用户名密码和验 ...

  4. RBAC-基于角色的权限管理

    RBAC-基于角色的权限管理 RBAC权限管理 RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一 ...

  5. Shiro角色和权限管理

    Shiro角色和权限管理 在resources下创建shiro.ini文件,用于存储数据,也可以将数据存于数据库,这里我采用shiro.ini文件,内容如下: [users] zhangsan=z3, ...

  6. Jenkins 用户角色及权限管理

    Jenkins 用户.角色及权限管理 官方文档:https://jenkins.io/zh/doc/ 1.插件管理 首先,登录以管理员身份登录Jenkins 然后,在插件管理模块中,检查Role-ba ...

  7. Jenkins 中基于角色的权限管理

    Jenkins 中基于角色的权限管理 原文地址: Jenkins 中基于角色的权限管理 | 超级小豆丁 (mydlq.club) 系统环境: Jenkins 版本:2.213 一.简介 Jenkins ...

  8. oracle中角色和用户权限,Oracle用户、角色、权限管理

    用户在会话的权利上,应该有其他操作的权利:Oracle的用户和口令不区分大小写,真是让人大跌眼镜:Oralce中,所有用户必须明确被 create or replace type address as ...

  9. PostgreSQL用户角色和权限管理

    一.用户角色管理 1.创建用户角色 create user cjr LOGIN;create role cjr1 CREATEDB;create role cjr2 superuser; create ...

最新文章

  1. leetcode题目解答报告(1)
  2. JsonData响应工具类封装
  3. [bbk4343]小布-OCP 042全真试题讲解
  4. Postman使用入门
  5. [转] 值得推荐的C/C++框架和库
  6. 创建二叉树的代码_解二叉树的右视图的两种方式
  7. centos7黑客帝国装逼
  8. Hive2.0中HiveServer2的WEB UI界面
  9. 【nginx系列】深入理解nginx原理
  10. 软件测试之如何进行易用性测试?
  11. 值得看三次的高干文_6本好看的高干文推荐,每本都值得看三次!
  12. Cannot resolve org.glassfish.jaxb:jaxb-runtime:2.3.5 Spring Cloud建立服务中心出错,使用JDK11出错
  13. python日期推算
  14. 黑客组织 LAPSUS$ 认领,英伟达超7万员工信息遭泄露时间线
  15. 整理的开学需要准备的物品清单,删了怪可惜,做个备份吧
  16. ESP32基础应用之ESP32与阿里云物联网平台实现数据互传(MQTT协议)
  17. the module was loaded but the call to DllRegisterServer failed with error code 0x80020009
  18. 中国省市区----SQL表
  19. cisco english word
  20. 第十一周项目3.2 警察和厨师 为Polic类和Cook类增加了对象成员,请扩充代码

热门文章

  1. httpsrequest java_java 发送http和https请求的实例
  2. python 导出数据并发邮件_Python自动化导出zabbix数据并发邮件脚本
  3. js php 获取时间倒计时_,js实现倒计时及时间对象
  4. debug控制台内容消失 idea_IDEA 乱码问题(解决方案篇)
  5. oracle创建序列seq起始值为1_oracle 重置序列从指定数字开始的方法详解
  6. nt是linux指令吗,linux shell 指令 诸如-d, -f, -e之类的判断表达式简介
  7. python 制作高斯mask_【趣味案例】用Python制作各种酷炫词云图,原来这么简单!...
  8. js关闭手机浏览器_Unity 之 WebGL打开手机摄像头
  9. 联想x250为什么这么贵_为什么ThinkPad这么贵?
  10. centos7通过yum升级内核到最新版本