문제

보안 트리밍이 활성화 된 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 및 역할을 사용하는 경우 로그인 한 다음 다시 켜질 때까지 그룹 멤버십의 변경 사항이 적용되지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top