【发布时间】:2009-09-14 15:08:54
【问题描述】:
我正在使用 ASP.NET Sitemaps 和自定义角色提供程序来生成站点菜单,该菜单根据用户角色显示可用链接。
如果在用户登录时角色没有改变,这很好用。 当用户登录时角色发生变化时,菜单不会自动更新(我已经检查过,并且 Roles.GetRolesForUser() 仅在登录时调用)。这导致用户可以访问他无权查看的站点区域。这种访问不仅是可视的(以显示菜单项的形式),而且 Web.config 中定义的访问限制也不会被强制执行。
有没有办法在角色更改时触发菜单/访问控制刷新?还是我需要强制注销?
提前致谢
编辑:我刚刚意识到我启用了角色管理器 cacheRolesInCookie,这意味着 GetRolesForUser() 只被命中一次,并且任何进一步的角色检查都是使用 cookie 进行的。有什么方法可以以编程方式刷新 cookie,还是我必须关闭缓存?也许只是删除cookie就可以解决它?
【问题讨论】:
标签: asp.net security sitemap roleprovider