当Web.config文件中的CacheRolesInCookie属性设置为true时,每个用户的角色信息都存储在cookie中。当角色管理检查用户是否处于特定角色时,将在调用角色提供程序之前检查角色cookie,以检查数据源中的角色列表。动态更新cookie以缓存最近验证的角色名称。
a)据我了解上述文本,即使角色管理检查角色cookie,角色提供者仍会检查数据源中的角色列表吗?
b)上面的文字讨论了在调用角色提供者之前调用的角色管理。什么类充当角色管理?
感谢名单
修改
据我所知,cookie中缓存的信息包括所有可用的角色,而不仅仅是您的用户所属的角色。所以我不相信数据库每次都会被击中。
来自我上一篇文章引用的同一网站:
Roles.CacheRolesInCookie属性值
如果当前用户的角色缓存在cookie中,则为true;否则,错误。默认值为true。
这表明只有当前用户的角色存储在cookie中。此外,如果所有角色都存储在cookie中,那么角色管理员仍然需要检查数据库以查看当前用户所属的角色是哪个?!
角色管理由System.Web.Security.Roles类处理。
我认为文本使用术语role management
来引用调用System.Web.Security.Roles方法的类/模块,后者又检查用户是否是特定角色的成员?
答案 0 :(得分:1)
角色管理由 System.Web.Security.Roles 类处理。据我了解,cookie中缓存的信息包括所有可用的角色,而不仅仅是您的用户所属的角色。所以我不相信数据库每次都会被击中。
如果您要更改可用角色列表(即通过创建新角色),则提供商将在下一次往返时使cookie中的缓存无效。
//理查德。