asp.net-mvc - 如果这样配置的话,asp.net RoleManager 真的会在 cookie 中缓存用户的角色吗?

标签 asp.net-mvc roleprovider

在我的 web.config 中,我的角色管理器配置如下:

<roleManager enabled="true" cacheRolesInCookie="true" cookieName=".ASPROLES" 
cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" 
cookieSlidingExpiration="true" cookieProtection="All">

然而,在我们的自定义 RoleProvider 中,似乎总是调用 GetRolesForUser 方法,而不是像我预期的那样,RoleManager 从其 cookie 中提供角色。

我们正在使用类似的方法来获取用户的角色:

string[] myroles = Role.GetRolesForUser("myuser");

我在配置或 RoleManager 的使用中是否缺少某些内容

最佳答案

您的 web.config 中缺少 defaultProvider="yourRoleProviderName"

您是为任何用户调用以下方法还是仅为当前用户调用以下方法? Cookie 缓存仅适用于当前用户角色。

Role.GetRolesForUser("myuser");

检查第一次调用 IsInRoleGetRoles 方法后,.ASPROLES cookie 是否发送到浏览器。

关于asp.net-mvc - 如果这样配置的话,asp.net RoleManager 真的会在 cookie 中缓存用户的角色吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/836043/

相关文章:

c# - 在.Net Core 2.0中使用MVC6选择标签不显示占位符

c# - session 超时刷新元标记重置.NET

c# - 在生产中隐藏 MVC 页面

asp.net-mvc - Azure 文件存储/索引解决方案

visual-studio-2010 - SQL Server 角色提供程序单元测试期间出现 "The role manager feature has not been enabled"错误

asp.net - 如何使用 ApiController 返回原始字符串?

asp.net - 将角色分配给匿名 session

wcf - 是否可以在自托管 WCF 服务中使用 ASP.NET MembershipProvider/RoleProvider?

c# - ASP.NET 成员资格和角色提供者配置问题

.net - 今天如何在 ASP.net MVC 4 中进行授权?