ASP.NET成员资格和角色管理
一、成员资格管理
1.成员资格管理模型
ASP.NET提供的成员资格管理功能,其核心是利用内置的成员库表(SQL Server)、成员资格管理API(Membership、MembershipUser等)、成员资格提供程序(SqlMembershipProvider等),实现模块化和自动化的成员资格管理模式。
2.建立成员资格支持
2-1配置建立成员资格支持
找到Visual Studio 命令提示(2010)
配置成员资格支持
完成之后成功的标志就是打开SQL Server,多了一个aspnetdb的数据库
到这里就可以使用ASP.NET 提供的自己的解决方案了。
这里面可以实现管理用户和管理角色。
当然也可以自己写,后面给出例子。点击打开链接
3.Membership类
Membership类用于验证用户凭据并管理用户设置,具有以下几个主要功能:
- 创建和管理用户
- 将成员资格信息存储在SQL Server或其他数据存储区中
- 对访问站点的用户进行身份验证。可以以编程方式对用户进行身份验证,也可以使用登录控件创建一个只需很少代码或无需代码的完整身份验证系统
- 管理密码,包括创建、更改、检索和重置密码等。可以选择配置成员资格管理功能,以要求一个密码提示问题及其答案来对忘记密码的用户的密码进行重置
Membership类的常用方法
|
属 性 |
描 述 |
|
ApplicationName |
获取或设置应用程序的名称。 |
|
EnablePasswordReset |
获得一个值,指示当前成员资格提供程序是否配置为允许用户重置其密码。 |
|
EnablePasswordRetrieval |
获得一个值,指示当前成员资格提供程序是否配置为允许用户检索其密码。 |
|
MaxInvalidPasswordAttempts |
获取锁定成员资格用户允许的无效密码或无效密码提示问题答案尝试次数。 |
|
MinRequiredNonAlphanumericCharacters |
获取有效密码中必须包含的最少特殊字符数。 |
|
MinRequiredPasswordLength |
获取密码所要求的最小长度。 |
|
PasswordAttemptWindow |
获取在锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数。 |
|
PasswordStrengthRegularExpression |
获取用于计算密码的正则表达式。 |
|
RequiresQuestionAndAnswer |
获取一个值,该值指示默认成员资格提供程序是否要求用户在进行密码重置和检索时回答密码提示问题。 |
|
UserIsOnlineTimeWindow |
指定用户在最近一次活动的日期/时间戳之后被视为联机的分钟数。 |
Membership类的常用方法
|
方 法 |
描 述 |
|
CreateUser |
已重载。将新用户添加到数据存储区。 |
|
DeleteUser |
已重载。从数据库中删除一个用户。 |
|
FindUsersByEmail |
已重载。获取一个成员资格用户的集合,这些用户的电子邮件地址包含要匹配的指定电子邮件地址。 |
|
FindUsersByName |
已重载。获取一个成员资格用户的集合,这些用户的用户名包含要匹配的指定用户名。 |
|
GeneratePassword |
生成指定长度的随机密码。 |
|
GetAllUsers |
已重载。获取数据库中用户的集合。 |
|
GetNumberOfUsersOnline |
获取当前访问应用程序的用户数。 |
|
GetType |
获取当前实例的Type。(从Object 继承。) |
|
GetUser |
已重载。从数据源获取成员资格用户的信息。 |
|
GetUserNameByEmail |
获取一个用户名,其中该用户的电子邮件地址与指定的电子邮件地址匹配。 |
|
ReferenceEquals |
确定指定的Object 实例是否是相同的实例。(从Object 继承。) |
|
UpdateUser |
用指定用户的信息更新数据库。 |
|
ValidateUser |
验证提供的用户名和密码是有效的。 |
二、成员角色管理
1.成员角色管理模型
ASP.NET提供的角色管理将整个控制过程分成两个步骤:
- 访问权限与角色关联
- 角色与用户关联
2.Roles类
2-2-1.Roles类常用属性
|
属 性 |
说 明 |
|
ApplicationName |
获取或设置要存储和检索其角色信息的应用程序的名称。 |
|
CacheRolesInCookie |
获取一个值,该值指示当前用户的角色是否已缓存在某个Cookie 中。 |
|
CookieName |
获取在其中缓存角色名称的Cookie 的名称。 |
|
CookiePath |
获取缓存角色名称的Cookie 的路径。 |
|
CookieProtectionValue |
获取一个指示如何保护在Cookie中缓存的角色名称的值。 |
|
CookieSlidingExpiration |
指示是否将要定期重置角色名称 Cookie 的到期日期和时间。 |
|
Enabled |
获取或设置用来指示是否为当前Web 应用程序启用角色管理的值。 |
2-2-2.Roles类常用方法
|
方 法 |
说 明 |
|
AddUsersToRole |
将指定的用户添加到指定的角色中。 |
|
CreateRole |
将新的角色添加到数据源。 |
|
DeleteCookie |
删除在其中缓存角色名称的 Cookie。 |
|
DeleteRole |
已重载。从数据源移除一个角色。 |
|
FindUsersInRole |
获取属于指定角色的用户列表,其中用户名包含要匹配的指定用户名。 |
|
GetAllRoles |
获取应用程序的所有角色列表。 |
|
GetRolesForUser |
已重载。获取当前登录的用户所属的角色列表。 |
|
GetUsersInRole |
获取一个用户所属角色的列表。 |
|
IsUserInRole |
已重载。获取一个指示用户是否属于指定角色的值。 |
|
RemoveUserFromRole |
从指定的角色中移除指定的用户。 |
ASP.NET成员资格和角色管理的更多相关文章
- ASP.NET成员资格与角色管理配置内容
Web.config中进行配置 以便于连接数据库,使用微软提供的Membership类.·····等 <?xml version="1.0" encoding=" ...
- [转]ASP.NET 成员资格 Part.1(API)
本文转自:http://www.cnblogs.com/SkySoot/archive/2013/04/08/3008418.html 表单验证解决了 ASP.NET 应用程序页面验证的问题,但另一方 ...
- ASP.NET 成员资格 Part.2(使用安全控件 Login)
原文:ASP.NET 成员资格 Part.2(使用安全控件 Login) 准备好提供程序以及用户信息的存储,就可以开始构建验证用户.注册用户或者让用户能够重置密码的用户界面了.ASP.N ...
- asp.net core web 添加角色管理
新建asp.net core web应用 添加RolesAdminController [Authorize(Roles = "Admin")] public class Role ...
- 使用成员资格管理用户Membership
ASP.NET成员资格使您可以验证和管理Web应用程序的用户信息.它提供验证用户凭据,创建和修改成员资格用户以及管理用户设置(如密码和电子邮件地址)的功能. ASP.NET成员资格主要用于ASP.NE ...
- SimpleMembership,成员资格提供程序、 通用的提供者和新的 ASP.NET 4.5 Web 窗体和 ASP.NET MVC 4 模板
ASP.NET MVC 4 互联网模板中添加一些新的. 非常有用的功能,构建 SimpleMembership.这些更改将添加一些很有特色,像很多更简单. 可扩展会员 API 和 OAuth 的支持. ...
- membership与成员资格
membership成员资格是ASP.NET 成员资格为您提供了一种验证和存储用户凭据的内置方法.因此,ASP.NET 成员资格可帮助您管理网站中的用户身份验证.它包含以下功能 创建新用户和密码. 将 ...
- MVC4 成员资格、 身份验证
SimpleMembership,成员资格提供程序. 通用的提供者和新的 ASP.NET 4.5 Web 窗体和 ASP.NET MVC 4 模板 ASP.NET MVC 4 互联网模板中添加一些新的 ...
- ASP.Net MVC 5 高级编程 第7章 成员资格、授权和安全性
第7章 成员资格.授权和安全性 7.1 安全性 ASP.NET MVC 提供了许多内置的保护机制(默认利用 HTML 辅助方法和Razor 语法进行 HTML编码以及请求验证等功能特性,以及通过基架构 ...
随机推荐
- 使用Gulp压缩IMG
继续说Gulp压缩img 不会安装Gulp的小伙伴们,就去看我的上一篇吧!内容怎么安装的都有! 1.咱们先来安装任务插件吧: npm install gulp-imagemin --save-dev ...
- git本地分支重命名
1. 本地分支重命名 git branch -m oldbranchname newbranchname 2. 远程分支重命名 (假设本地分支和远程对应分支名称相同) a. 重命名远程分支对应的本地分 ...
- 全面了解 NOSQL
NoSQL被我们用得最多的当数key-value存储,想知道为什么要有NOSQL,就首先要明白传统关系SQL: 传统关系数据库的瓶颈 传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简 ...
- SQLite入门操作(一)
//++其他的头文件 #include "sqlite3.h" #pragma comment(lib,"sqlite3.lib") int GetItemCo ...
- 使用auto_ptr需要注意的事项
注:C++11 已不推荐使用,应使用scoped_ptr/shared_ptr. 部分原因就是如下的注意事项. 转自:http://patmusing.blog.163.com/blog/static ...
- spring与mybatis的整合
整合的思路 SqlSessionFactory对象放到spring容器中作为单例存在. 传统dao的开发方式中,从spring容器中获得sqlsession对象. Mapper代理形式中,从sprin ...
- day010-缓冲流、转换流、序列化流
1. 缓冲流 又称为高效流.高效流高效的原理:使用缓冲区(数组)临时存储多个数据,减少底层资源的调用次数.从而提高读写速度. 1.1 缓冲流分类 字节缓冲流: BufferedOutputSt ...
- 2017软件测试_HW1_最近遇到的编程问题
最近遇到的错误:我对着网页源代码编写了一段爬虫语句,运行没有提示有错误,而且 可以抓取到全部的数据,但是不能按照要求将这些数据分到制定的位置. 发现问题原因:我把抓取到的字段对着网页源码看了一下,发 ...
- SAP S4CRM 1811 服务订单API介绍
Jerry在今年2月28日,SAP Customer Management for S/4HANA 1.0正式问世这个具有纪念意义的日子,同时发布了中英文版的博客进行介绍. 英文版发在SAP社区上,至 ...
- 欢迎来到“火龙族智者”的blog
本blog里有每天更新的比赛感想,新技术体会以及日语学习相关事宜. 主要研究方向是算法,信息安全以及日语. 希望各位能常来看看.