1

我正在使用带有自定义角色提供程序的ASP.NET 站点地图来生成站点菜单,该菜单根据用户角色显示可用链接。

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

有没有办法在角色更改时触发菜单/访问控制刷新?还是我需要强制注销?

提前致谢

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

4

1 回答 1

1

选择了非缓存版本,效果很好。

于 2009-09-29T14:21:41.817 回答