ASP.NET Web.Sitemap에서 공인 메뉴 항목을 숨기십시오
-
20-08-2019 - |
문제
보안 트리밍이 활성화 된 Web.Sitemap이 있지만 Web.Config에 액세스 규칙이없는 페이지에 대한 역할을 기반으로 메뉴 항목을 숨겨야합니다.
즉, 기존 캠페인을 보거나 새 캠페인을 추가하는 데 사용되는 캠페인 페이지가 있지만 익명 사용자에게는 "새 캠페인"메뉴 항목이 숨겨지기를 원합니다. Web.sitemap의 역할 속성에 역할 이름을 추가하려고 시도했지만 효과가 없습니다.
다음 호출 포트 인 Siteemap 제공 업체를 수정하지 않고이 작업을 수행 할 수있는 빠른 방법이 있어야합니다.
해결책
이것이 익명 사용자에게 특별한 경우라면 두 번째 사이트 맵을 만들 수 있습니다.
새 파일 WebAnon.sitemap을 만듭니다.
Web.Config에서 새 사이트 맵 제공 업체를 만듭니다
<add name="anonProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="WebAnon.sitemap" securityTrimmingEnabled="true"/>
SiteemapDatasource를 설정하십시오 SiteemApprovider 익명 사용자 인 경우 코드의 "anonprovider"에 대한 속성.
다른 팁
그만큼 roles
a <siteMapNode />
거부가 아닌 "허용"목록입니다. 대응/수정 <location />
web.config의 요소 인증 된 사용자를 허용하고 익명을 거부합니다. 예를 들어
<location path="campaigns.aspx">
<system.web>
<authorization>
<allow users="*" />
<deny users="?" />
</authorization>
</system.web>
</location>
BTW, Windows Principal 및 역할을 사용하는 경우 로그인 한 다음 다시 켜질 때까지 그룹 멤버십의 변경 사항이 적용되지 않습니다.
제휴하지 않습니다 StackOverflow