安全性:成员资格与角色;验证与授权。
一、建数据库:在VS工具中用DOS环境执行ASPNET_REGSQL
二、配置程序访问数据库:
> 在web.config之中加入
<connectionStrings>
<add name="puzi" connectionString="server=LENOVO-PC;database=LaoChe;uid=sa;pwd=1234"/>
</connectionStrings> //其中的"puzi"是自己起的名字 : 在 <membership> 节中可以添加多个作为 <providers> 节的子元素。
defaultProvider 特性非常重要,这个特性指定你的应用程序将使用的成员资格提供程序。 在web.config中的<system.web>下面加上
<membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="" hashAlgorithmType="">
--defaultProvider :提供程序的名称。默认为 AspNetSqlMembershipProvider。
如果你有多个Provider的话,指定一个默认值是明智的做法
--userIsOnlineTimeWindow :指定用户在最近一次活动的日期/时间戳之后被视为联机的分钟数。
--hashAlgorithmType :用于哈希密码的算法的标识符,或为空以使用默认哈希算法。 <providers>
<add
name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
--当然上面那一句也可以使用下面这一句来代替
type="System.Web.Security.SqlMembershipProvider" connectionStringName="puzi" --这里写上面的数据库名字,puzi
enablePasswordRetrieval="false" --是否允许密码找回,等于false时是不许,等于加密
如果为 true,通过 MembershipUser.GetPassword() 可以取回密码。
当然,这只有在密码没有被散列化的情况下才起作用
enablePasswordReset="true" --是否需要密码重置
requiresQuestionAndAnswer="false" --是否需要必须的问题和答案指定程序是否启用密码问题功能。用户忘记密码后并正确回答了问题,他可以通过 Email 重新获得一个自动生成的密码
requiresUniqueEmail="false" --是否需要验证的邮箱
maxInvalidPasswordAttempts="" --最大的密码重试次数,超过之后便会锁定,即使输入正确的也打不开,默认值 。
minRequiredPasswordLength="" --最小的密码长度
minRequiredNonalphanumericCharacters="" --密码的怪字符个数是0,指定密码必需含有的非字母数字字符的个数。重要
passwordAttemptWindow="" -- 设置以分钟计的时间。在这段时间内可以尝试多次无效密码或者密码回答,
时间一过,用户立即被锁定。默认值 分钟。管理员必须再次激活这个账号
applicationName="/" --applicationName :应用程序的名称。
applicationName 属性要特别注意。实际上,成员资格数据库里的所有对象都和一个应用程序相关联。
如果没有在成员资格配置里指定 applicationName,API 或 WAT 会把这些对象通过名称“/”关联到根应用程序。 passwordFormat :指示在成员资格数据存储区中存储密码的格式。值可选Clear、Encrypted 和 Hashed。
Clear: 密码以明文形式存储,这可以提高存储和检索密码的性能,但安全性较差,
当数据源安全性受到威胁时此类密码很容易被读取。
Encrypted: 密码在存储时进行了加密,可以在比较或检索密码时进行解密。
此类密码在存储和检索时需要进行额外的处理,但比较安全,在数据源的安全性受到威胁时不容易被获取。
Hashed :密码在存储到数据库时使用单向哈希算法和随机生成的 salt 值进行哈希处理。
在验证某一密码时,将用数据库中的 salt 值对该密码进行哈希计算以进行验证。无法检索哈希密码。 passwordStrengthRegularExpression="" --计算密码的正则表达式。 可以使用正则表达式指定一个有效的密码格式,
这就可以非常灵活的指定密码的标准格式了 />
</providers>
</membership> 第三部:编写程序,membership类
:创建用户:(.CreateUser)
Membership.CreateUser("姓名","密码","邮箱");
:登陆测试:验证用户
登陆(ValidateUser)
bool isOk = Membership.ValidateUser("用户名","密码");
:修改密码:(.ChangePassword)
使用MembershipUser对象的实例方法:.ChangePassword
MembershipUser user= Membership.GetUser(Textyong1.Text);//查
if (user != null)
{
user.ChangePassword(Textmiyu.Text,Textmixian.Text);//找
}
:获取单用户,获取所有用户
获取单用户的方法:
MembershipUser user = Membership.GetUser(Textming.Text);
获取所有用户的方法:
MembershipUserCollection user=Membership.GetAllUsers();
CheckBoxList1.DataSource = user;
CheckBoxList1.DataTextField = "UserName";//显示值
CheckBoxList1.DataValueField = "UserName";//value值
CheckBoxList1.DataBind();
:删除用户:(.DeleteUser)
// string usename = TextBox1.Text();
//string usename = CheckBoxList1.SelectedValue;
string usename = RadioButtonList1.SelectedValue;
Membership.DeleteUser(usename);
:禁用或启用用户(.IsApproved )
string usename = RadioButtonList1.SelectedValue;
//找
MembershipUser user = Membership.GetUser(usename);
//改(这时候还没有送回数据库)
//启用,设为true,禁用设为false
user.IsApproved = false;
//保存送回数据库
Membership.UpdateUser(user);
:解锁与锁定(.UnlockUser)
人没法直接锁用户,只有在输入错了的时候才能锁定
解锁:
string usename = RadioButtonList1.SelectedValue;
//找
MembershipUser user = Membership.GetUser(usename);
//解锁
user.UnlockUser();
二:角色管理:
:获取所有角色:
string[] roles = Roles.GetAllRoles();
:添加角色:
Roles.CreateRole(Textjuese.Text);//添加角色
:删除角色
Roles.DeleteRole(rolename);//删除角色 三:设置用户角色的对应关系
Roles.AddUserToRole()
Roles.AddUserToRoles()
Roles.AddUsersToRoles()
Roles.AddUsersToRole()//添加用户 Roles.RemoveUsersFromRole//移除用户
Roles.RemoveUserFromRoles
Roles.RemoveUserFromRole
Roles.RemoveUsersFromRoles Roles.GetUsersInRole();//获取角色中有哪些用户 验证(Authentication)与授权(Authorization)
验证:有票就进,没票不进(密码)
授权:检票可以在车上,没检票的下车(有密码之后便可以设置权限,设置权限)
.验证:
<authentication mode="Forms"><!--验证-->
<forms defaultUrl="DMain.aspx" loginUrl="DLogin.aspx" name="aaa" protection="All"></forms>
</authentication>
:验证:
<authorization><!--授权-->
<deny users="?"/><!--deny 拒绝。users="*"既是所有的用户都无法登陆,users="?":匿名用户,不可以登陆-->
<allow users="*"/>//users="*"允许所有的用户,users="?"允许匿名用户
</authorization>
:代码:
一: bool isok = Membership.ValidateUser(Textid.Text,Textpass.Text);
if (isok)
{
//向cookie中写入内容
//是否建立长久的cookie文件,即是否在文件是否在电脑本地上写cookie文件
//FormsAuthentication.SetAuthCookie(Textid.Text,false); //即写cookie又跳页面
FormsAuthentication.RedirectFromLoginPage(Textid.Text, false);
//Response.Redirect("DMain.aspx");//最好不要用这种
} 二: Label1.Text = this.User.Identity.Name;//登陆进去之后
注销: FormsAuthentication.SignOut();//注销
FormsAuthentication.RedirectToLoginPage();//返回登陆页面 三:授权:
按照文件夹授权:
在每个文件夹之下新建网站,加配置文件。并在配置文件中加入下面的程序
<!--不对用户(人名)授权,对角色(财务管理)授权-->
<authorization>
<allow roles="政绩管理"/>
<!--允许所有用户-->
<deny users="*"/>
<!--拒绝所有用户-->
</authorization>

实例下载地址:百度文库

解压密码:1111112

下载说明文库地址:http://pan.baidu.com/s/1qWA0NnA

老师讲的视频:百度一下

Membership角色与权限管理的更多相关文章

  1. [转帖]PostgreSQL的用户、角色和权限管理

    PostgreSQL的用户.角色和权限管理 2018年05月18日 14:02:29 jerry-89 阅读数 6143 https://blog.csdn.net/eagle89/article/d ...

  2. 10.spring-boot基于角色的权限管理页面实现

    10.spring-boot基于角色的权限管理页面实现

  3. 【视频分享】Liger UI实战集智建筑project管理系统配商业代码(打印报表、角色式权限管理)

    QQ 2059055336 课程讲师:集思博智 课程分类:.net 适合人群:中级 课时数量:23课时 用到技术:Liger UI框架.AJAX.JSON数据格式的序列化与反序列化.角色的交叉权限管理 ...

  4. WordPress用户角色及其权限管理编辑插件:User Role Editor汉化版

    如果Wordpress默认的用户角色及权限不能满足您的需求,又觉得修改代码编辑用户权限太麻烦.那不妨试试User Role Editor,Wordpress用户角色及其权限管理编辑插件. User R ...

  5. devops-jenkins基于角色的权限管理RBAC

    一. devops-jenkins基于角色的权限管理RBAC 1 安装角色的rbac角色管理  1.1) 点击系统管理 1.2) 选择插件管理 1.3) 选择可选插件,输入role搜索 1.4) 选择 ...

  6. PostgreSQL学习笔记(九) 用户、角色、权限管理

    PostgreSQL是一个多用户数据库,可以为不同用户指定允许的权限. 角色PostgreSQL使用角色的概念管理数据库访问权限. 根据角色自身的设置不同,一个角色可以看做是一个数据库用户,或者一组数 ...

  7. PostgreSQL 用户、角色、权限管理

    PostgreSQL是一个多用户数据库,可以为不同用户指定允许的权限. 角色 PostgreSQL使用角色的概念管理数据库访问权限. 根据角色自身的设置不同,一个角色可以看做是一个数据库用户,或者一组 ...

  8. RBAC基于角色的权限管理模型

    一.权限管理模型的必要性: a. 安全性:防止误操作,防止数据泄露,保证信息的安全. b. 数据隔离:保持不同的角色具有不同的权限,只能看到自己权限范围内的数据 二.权限管理模型的发展: a. 传统的 ...

  9. Oracle用户及角色的权限管理[Oracle基础]

    1.查看全部用户:   select * from dba_users;   select * from all_users;   select * from user_users; 2.查看用户或角 ...

随机推荐

  1. win7下安装load generator

    win7下只安装loadrunner load generator 1.点击setup.exe 2.选择“loadrunner 完整安装程序”   3.安装完成所需要的插件,然后重启 4.重新打开安装 ...

  2. SLua 中继承 C# 类接口 Slua.Class 的一个 Bug。

    由于目前要把大量的代码移植到 lua 中(真是够虐心的),面向对象肯定少不了,项目的代码都是这么设计的,于是就测试 Slua.Class 接口来扩展 C# 的类,发现有点问题,给作者提交了一个 Iss ...

  3. 【ACM/ICPC2013】二分图匹配专题

    前言:居然三天没有更新了..我的效率实在太低,每天都用各种各样的理由拖延,太差了!昨天的contest依旧不能让人满意,解出的三题都是队友A的,我又卖了一次萌..好吧废话不多说,今天我要纪录的是二分图 ...

  4. 关于vim打开中文文件出现乱码问题

    中文字符编码问题. 在你的vi配置文件(~/.vimrc)里面添加一行: set fileencodings=ucs-bom,utf-8,cp936,gb18030,latin1 意思是让vim从 这 ...

  5. Maven配置 settings.xml 转

    https://my.oschina.net/qjx1208/blog/201085 摘要: 记录settings.xml的配置,理解mirror.repository.profile的关系 本地仓库 ...

  6. SSH-KeyGen 的用法 【转载】

    SSH-KeyGen 的用法 secureCrt通过密钥登录 做法:1.登录A机器 2.ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或 ...

  7. OGG-01224 Bad file number

    今天在看OGG的日志时.发现例如以下OGG-01224 Bad file number错误.查阅资料才知道port不可用,看了一下mgr的參数,发现是设置的DYNAMICPORTLIST 动态port ...

  8. spring security3.2配置---权限管理

    之前已经在我的博客中发过security的执行流程图了,大家能够先去看看那个图再看这篇.今天我主要在这里贴出了security配置中的几个重要的类和两个xml配置文件,基本上控制权限的就是这几个文件了 ...

  9. Swift开发:NSLayoutConstraint纯代码实现自动布局-初级篇

    要求 宽高200的view,通过代码,使得view在距离父控件的右下角20边距处 /* 约束的设置,控件内部约束由自己添加,比如宽高,如果是与其他的 控件约束那么有父控件添加 *创建约束 NSLayo ...

  10. redis持久化和常见故障

    https://segmentfault.com/a/1190000004135982 redis 主从复制 Redis主从复制的原理 当建立主从关系时,slave配置slaveof <mast ...