我正在使用 ASP.NET Sitemaps 和自定义角色提供程序,用于生成站点菜单,根据用户角色显示可用链接。

如果在用户登录时角色没有改变,这样可以正常工作。 当用户登录时角色确实发生变化时,菜单不会自动更新(我已经检查过,并且只在登录时调用Roles.GetRolesForUser())。这导致用户可以访问他无权查看的站点区域。此访问不仅是可视的(以显示的菜单项的形式),而且Web服务中定义的访问限制也没有被强制执行。

当角色发生变化时,有没有办法触发菜单/访问控制刷新?或者我是否需要强制注销?

提前致谢

编辑:我刚刚意识到我启用了角色管理器cacheRolesInCookie,这意味着GetRolesForUser()只被命中一次,并且使用cookie进行了任何进一步的角色检查。有没有办法以编程方式刷新cookie或者我必须关闭缓存吗?也许只是删除cookie会解决它?

有帮助吗?

解决方案

找到非缓存版本,工作正常。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top