基于用户的不同asp:菜单

我有一个oracle数据库,用于存储本地Intranet的菜单和用户数据。 数据包括哪些用户有权访问哪些页面。 最初,我创建了一个扩展了StaticSiteMapProvider类的类,但是当它进入测试环境时,我发现该类已缓存到整个站点(而不是基于用户)。在各种论坛上在线阅读后,建议我从SiteMapProvider继承,因为这将使我能够在用户基础上拥有一个SiteMapProvider和ASP:MENU项目的单独实例,但是,这仍然没有解决问题。 当前,我有一个用户控件,该控件使asp:menu变得困难,并使用我的自定义站点地图提供程序作为其数据源。 有人可以建议我在数据库授权的驱动下如何显示用户菜单吗? 同样,整个菜单仍应向所有用户显示,只有在您单击菜单节点后,他们才能知道他们是否有权访问该页面/节点。 谢谢     
已邀请:
您可以在SiteMap上使用“角色”来定义将出现的菜单。     
这里有两件事。如果您具有静态的节点集合,然后要基于用户可访问性显示/隐藏它们,则应覆盖IsAccessibleToUser 判断给定节点是否适用于当前用户的方法(可从给定HttpContext访问)。 如果您的节点集合/层次结构按用户有所更改,然后尝试覆盖BuildSiteMap以为当前用户加载不同的节点。但是,在这种情况下,如果StaticSiteMapProvider是正确的基类,我会有点怀疑。可能需要从ѭ0覆盖。     

要回复问题请先登录注册