標準のasp.netサイトマップを利用するカスタムメニューがあります。うまく機能しますが、一部のページは URL リライターによって動的に生成されるため、サイトマップ XML ファイルには含まれません。現時点では、CSS クラスを介してメニュー項目を表示/非表示にするカスタム ソリューションと、ユーザーの役割をプログラムでチェックするカスタム ソリューションを作成しました。サイトマップ ファイルに存在しない動的ページにアクセスするまでは問題なく動作します。セキュリティ トリミングを使用してサイトマップ ファイルの "roles" 属性を試しましたが、カスタム メニューがあるため機能しません。
一部のページがサイトマップにない場合でも、サイトマップ ファイルのロール属性を利用して、以下のカスタム コントロールのメニュー項目を表示/非表示にする方法はありますか? 私のメニューコントロールは以下にあります...
<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>