总览地址

https://msdn.microsoft.com/zh-cn/library/9ab2fxh0.aspx

其中基本概述是第一篇:了解角色管理

来自 <https://msdn.microsoft.com/zh-cn/library/5k850zwb.aspx>

第二篇是类的参考而已,以后进阶使用时可供查询之用。

最后一篇是介绍自定义角色提供程序RoleProvider要重写的方法及方法的描述。

若要使用角色管理,首先要启用它,并配置能够利用角色的访问规则(可选)。然后可以在运行时使用角色管理功能处理角色。

<roleManager
enabled="true"
cacheRolesInCookie="true" >
</roleManager>

再配置授权部分,则角色与权限的关联就建立起来

<authorization>
<allow roles="members" />
<deny users="*" />
</authorization>

剩余部分是用户与角色的关联。如果使用的是Windows身份认证,则使用回windows本身的用户与角色组之间的关联;如果使用的是Forms身份认证,则需要使用以下代码来实现

///创建角色
Roles.CreateRole("members");
///角色与用户关联
Roles.AddUsersToRole("JoeWorden", "manager");
string[] userGroup = new string[];
userGroup[] = "JillShrader";
userGroup[] = "ShaiBassli";
Roles.AddUsersToRole(userGroup, "members");

角色需要先建立,但一次建立后下次重复建立则会报错,同样用户添加角色也会重复添加会报错。

验证用户是否具有指定角色,可以用Iprincipal的IsInRole方法,而获取用户有多少角色,则需要用RolePrincipal的GetRoles()方法了。当启用了角色管理后,User则是RolePrincipal的实例。

缓存角色信息

如果用户的浏览器允许 Cookie,则 ASP.NET 可以选择在用户计算机的加密 Cookie 中存储角色信息。在每个页面请求中,ASP.NET 读取 Cookie 并根据 Cookie 填充该用户的角色信息。此策略可最大程度地减小从数据库中读取角色信息的需要。如果用户的浏览器不支持 Cookie 或者 Cookie 已禁用,则只在每个页面请求期间缓存角色信息。

角色提供程序

默认情况下使用的RoleProvider是SqlRoleProvider,它的连接字符串是data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true,数据库存放于项目文件夹App_Data中,可是库的现在尚未附加成功,因而无法查看里面内容。

roleManager与角色管理授权的更多相关文章

  1. RoleManager 进行角色管理

    ASP.NET Identity 使用 RoleManager 进行角色管理 (VS2013RC) 注:本文系作者原创,但可随意转载. 最近做一个Web平台系统,系统包含3个角色,“管理员, 企业用户 ...

  2. ASP.NET Identity 使用 RoleManager 进行角色管理 (VS2013RC)

    注:本文系作者原创,但可随意转载. 最近做一个Web平台系统,系统包含3个角色,“管理员, 企业用户, 评审专家”, 分别有不同的功能.一直以来都是使用微软封装好的Microsoft.AspNet.I ...

  3. Oracle用户、授权、角色管理

    创建和删除用户是Oracle用户管理中的常见操作,但这其中隐含了Oracle数据库系统的系统权限与对象权限方面的知识.掌握还Oracle用户的授权操作和原理,可以有效提升我们的工作效率. Oracle ...

  4. Oracle 用户、授权、角色管理

    Oracle 用户管理 一.创建用户的Profile文件SQL> create profile student limit // student为资源文件名FAILED_LOGIN_ATTEMP ...

  5. Module Zero之角色管理

    返回<Module Zero学习目录> 角色实体 角色管理者 多租户 角色实体 角色实体代表了该应用的一个角色.它应该派生自AbpRole类,如下所示: public class Role ...

  6. ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇

    在前一篇文章中,我介绍了ASP.NET Identity 基本API的运用并创建了若干用户账号.那么在本篇文章中,我将继续ASP.NET Identity 之旅,向您展示如何运用ASP.NET Ide ...

  7. ASP.NET Identity 身份验证和基于角色的授权

    ASP.NET Identity 身份验证和基于角色的授权 阅读目录 探索身份验证与授权 使用ASP.NET Identity 身份验证 使用角色进行授权 初始化数据,Seeding 数据库 小结 在 ...

  8. 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

    系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...

  9. Asp.Net Core--基于角色的授权

    翻译如下: 当创建身份时,它可以属于一个或多个角色,例如Tracy可以属于管理员和用户角色,而Scott可以仅属于用户角色. 如何创建和管理这些角色取决于授权过程的后备存储. 角色通过ClaimsPr ...

随机推荐

  1. HTML和CSS经典布局5

    如下图: 需求: 1. 如图 2. 可以从body标签开始. 3. 页面内容高度设置高点,把窗口的滚动条显示出来,但是busy indicator不滚动. <!DOCTYPE html> ...

  2. 剑指Offer面试题:25.二叉搜索树与双向链表

    一.题目:二叉搜索树与双向链表 题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向.比如输入下图中左边的二叉搜索树,则输出转换之后的 ...

  3. SQL Server null知多少?

    null是什么? 不知道.我是说,他的意思就是不知道(unknown). 它和true.false组成谓词的三个逻辑值,代表“未知”.与true和false相比,null最难以令人捉摸,因为它没有明确 ...

  4. Linux 查找已安装软件的方法

    1.rpm 注意rpm区分大小写 查询已安装的以mysql开头的包 rpm  -qa mysql* 查询已安装的mysql 包 rpm -qa|grep mysql rpm的方法有时候也所有已安装的包 ...

  5. OAuth2 Backend Web Application 验证过程

    本文是从我的 github 博客转载的,原文请看. 一图胜千言.图片请自由转载,请保留图片的原始签名.

  6. Java static 的一两点使用

    这篇文章是关于Java static关键字的使用,主要会介绍以下的内容: static 的概念 static的各种应用 总结 static 是什么 static 顾名思义是静态的意思.与this相对, ...

  7. 获取Linux主机的CPU、内存、主板、BIOS的信息(Centos)

    #!/usr/bin/env python #coding:utf-8 import subprocess import re def Cmd_Exec(cmd): ''' 执行获取信息命令 :par ...

  8. 日志log

    public class LoggerHelper { private static Queue<string> qMsg = null; private static string lo ...

  9. Trace Flag

    Trace Flag能够影响Sql Server的行为,主要用于diagnose performance issue,官方解释是: Trace flags are used to temporaril ...

  10. JS函数无响应

    自己定义了一个函数,比如说叫 addClass(),当按钮单击的时候响应 在添加了一些第三方Open JS API后就没反应了 原因分析:在代码没变动的情况下,很有可能是自己定义的函数名和第三方的冲突 ...