我有一个自定义菜单,它利用了标准的 asp.net 站点地图。它运行良好,但我的一些页面是由 URL 重写器动态生成的,因此它们不位于站点地图 XML 文件中。目前,我推出了一个自定义解决方案,该解决方案通过 CSS 类显示/隐藏菜单项,并以编程方式检查用户所在的角色。在我访问站点地图文件中不存在的动态页面之前,它可以正常工作。我已经尝试使用安全修剪在站点地图文件中使用“角色”属性,但它不起作用,因为我有一个自定义菜单。
有没有一种方法可以利用站点地图文件中的角色属性来显示/隐藏下面我的自定义控件的菜单项,即使某些页面不在站点地图中?我的菜单控件如下...
<div class="menu">
<ul>
<asp:Repeater ID="rpt" runat="server" DataSourceID="smdsMenuPrimary"
EnableViewState="False">
<ItemTemplate>
<li class="<%#GetDisplayClass((SiteMapNode)Container.DataItem)%>"><a href='<%# ((SiteMapNode)Container.DataItem).Url %>'><%# ((SiteMapNode)Container.DataItem).Title %></a></li>
</ItemTemplate>
</asp:Repeater>
</ul>