zoukankan      html  css  js  c++  java
  • roleManager与角色管理授权

    总览地址

    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[2];
    userGroup[0] = "JillShrader";
    userGroup[1] = "ShaiBassli";
    Roles.AddUsersToRole(userGroup, "members");

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

    验证用户是否具有指定角色,可以用IprincipalIsInRole方法,而获取用户有多少角色,则需要用RolePrincipalGetRoles()方法了。当启用了角色管理后,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中,可是库的现在尚未附加成功,因而无法查看里面内容。

  • 相关阅读:
    BZOJ 1800 [Ahoi2009]fly 飞行棋
    BZOJ 3309 DZY Loves Math
    CAS Server和client 实现单点登录
    单点登录原理与简单实现
    Maven插件
    win10安装最新nexus-3.x及maven简单配置介绍
    oracle获取表的属性,包括字段,注释
    java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
    深入理解Tomcat虚拟目录
    环境搭建系列-系统安装之centos 6.5安装与配置
  • 原文地址:https://www.cnblogs.com/HopeGi/p/5853886.html
Copyright © 2011-2022 走看看