如果这样配置,asp.net RoleManager是否真的缓存了cookie中用户的角色?
-
08-07-2019 - |
题
在我的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 =&quot; yourRoleProviderName&quot;
。
您是否针对任何用户或仅针对当前用户调用以下方法? Cookie缓存仅适用于当前用户角色。
Role.GetRolesForUser("myuser");
在第一次调用 IsInRole
或 GetRoles
方法后,检查.ASPROLES cookie是否已发送到浏览器。
其他提示
如果要将 cacheRolesInCookie
中的值更改为 true
,它可能会更好。
不隶属于 StackOverflow