我正在使用ASP.NET Sitemaps与自定义角色提供程序生成网站菜单,该菜单根据用户角色显示可用链接。
如果在用户登录时角色没有改变,这样可以正常工作。 当用户登录时角色确实发生变化时,菜单不会自动更新(我已经检查过,并且只在登录时调用Roles.GetRolesForUser())。这导致用户可以访问他无权查看的站点区域。此访问不仅是可视的(以显示的菜单项的形式),而且Web服务中定义的访问限制也没有被强制执行。
当角色发生变化时,有没有办法触发菜单/访问控制刷新?或者我是否需要强制注销?
提前致谢
编辑:我刚刚意识到我启用了角色管理器cacheRolesInCookie,这意味着GetRolesForUser()只被命中一次,并且使用cookie进行了任何进一步的角色检查。有没有办法以编程方式刷新cookie或者我必须关闭缓存吗?也许只是删除cookie会解决它?
答案 0 :(得分:1)
找到非缓存版本,工作正常。