总览地址 数据库
https://msdn.microsoft.com/zh-cn/library/9ab2fxh0.aspxwindows
其中基本概述是第一篇:了解角色管理浏览器
来自 <https://msdn.microsoft.com/zh-cn/library/5k850zwb.aspx> 缓存
第二篇是类的参考而已,之后进阶使用时可供查询之用。 ide
最后一篇是介绍自定义角色提供程序RoleProvider要重写的方法及方法的描述。 加密
若要使用角色管理,首先要启用它,并配置可以利用角色的访问规则(可选)。而后能够在运行时使用角色管理功能处理角色。 spa
<roleManager enabled="true" cacheRolesInCookie="true" > </roleManager>
再配置受权部分,则角色与权限的关联就创建起来code
<authorization> <allow roles="members" /> <deny users="*" /> </authorization>
剩余部分是用户与角色的关联。若是使用的是Windows身份认证,则使用回windows自己的用户与角色组之间的关联;若是使用的是Forms身份认证,则须要使用如下代码来实现orm
///建立角色 Roles.CreateRole("members"); ///角色与用户关联 Roles.AddUsersToRole("JoeWorden", "manager"); string[] userGroup = new string[2]; userGroup[0] = "JillShrader"; userGroup[1] = "ShaiBassli"; Roles.AddUsersToRole(userGroup, "members");
角色须要先创建,但一次创建后下次重复创建则会报错,一样用户添加角色也会重复添加会报错。blog
验证用户是否具备指定角色,能够用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中,但是库的如今还没有附加成功,于是没法查看里面内容。