0

표준 asp.net 사이트 맵을 활용하는 사용자 정의 메뉴가 있습니다. 잘 작동하지만 일부 페이지는 URL 재 작성자에 의해 동적으로 생성되므로 사이트 맵 XML 파일에 포함되지 않습니다. 현재 CSS 클래스를 통해 메뉴 항목을 표시하거나 숨기는 사용자 지정 솔루션을 굴려서 사용자가있는 역할을 프로그래밍 방식으로 검사합니다. 사이트 맵 파일에없는 동적 페이지를 방문 할 때까지는 제대로 작동합니다. 보안 트리밍을 사용하여 사이트 맵 파일에서 "역할"특성을 시도했지만 사용자 지정 메뉴가 있기 때문에 작동하지 않습니다.역할/Web.sitemap 파일을 기반으로 사용자 정의 메뉴 항목 표시/숨기기

sitemap 파일에 role 속성을 활용하여 아래의 사용자 정의 컨트롤에 대한 메뉴 항목을 표시하거나 숨길 수있는 방법이 있습니까? 일부 페이지가 사이트 맵에없는 경우에도 가능합니까? 내 메뉴 컨트롤이

<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> 

답변

0

당신은 사이트 맵에서 각 URL을 테스트 UrlAuthorizationModule.CheckUrlAccessForPrincipal (경로)를 사용할 수 있습니다 ... 아래에있다 - 사용자가 경로에 대한 액세스 권한이있는 경우,이 메소드는 true를 돌려줍니다 (파일 또는 폴더)를 지정하고 그렇지 않으면 false입니다.

관련 문제