不同的asp:菜单在用户的基础上



我有一个存储菜单和用户数据的oracle数据库,用于本地Intranet。

数据包括哪些用户可以访问哪些页面。

最初我创建了一个扩展StaticSiteMapProvider类的类,但是当它进入测试环境时,我发现它是为整个站点缓存的(而不是以用户为基础)。在各种论坛上阅读后,有人建议我应该从SiteMapProvider继承,因为这将使我能够在用户基础上拥有SiteMapProvider和ASP:MENU项的独立实例,但这仍然没有解决问题。

目前我有一个用户控件,它包含asp:菜单,并使用我的自定义站点地图提供程序作为其数据源。

有没有人建议我如何在用户基础上显示菜单,从数据库授权驱动?

而且整个菜单应该仍然显示给所有用户,只有在他们点击一个菜单节点后,他们才会发现他们是否有权访问该页面/节点。

谢谢

您可以使用SiteMap上的角色来定义将出现的菜单

这里有两点。如果你有节点的静态集合,然后你想根据用户可访问性显示/隐藏它们,那么你应该重写IsAccessibleToUser方法来判断给定的节点是否适用于当前用户(可从给定的HttpContext访问)。

在这种情况下,你的节点集合/层次结构改变每个用户的基础上,然后尝试覆盖BuildSiteMap加载不同的节点为当前用户。但是,我有点怀疑StaticSiteMapProvider在这种情况下是否是正确的基类。可能需要从SiteMapProvider重写

相关内容

  • 没有找到相关文章

最新更新