0

"url"속성이없는 노드를 보완하는 "roles"속성이 태그에 포함되어 있음을 알고 있습니다. 다른 방법으로 해결되었습니다. 나는이 다른 방법들에 관심이 없지만 내 사이트 맵 파일에 모든 권한을 설정하고 싶습니다. 이 일을 성취하는 방법?역할 속성 만 사용하여 사이트 맵 보안 트리밍 및 다른 곳에서 규칙을 허용/거부하지 않음

사용자 지정 RoleProvider, 사용자 지정 MembershipProvider 및 기본 XmlSiteMapProvider를 사용하고 있습니다. 나는 또한 사람들이 직접 URL을 사용하는 것을 막기 위해 보안 IHttpModule을 가지고있다. 나는 다른 접근 방식에 열려 있습니다.

미리 감사드립니다.

답변

1

독자적인 XmlSiteMapProvider를 구현하고 IsAccessibleToUser 메서드를 재정의 할 수 있습니다. 우아한, 매우 간단하고 필요에 따라 작동 -

public override bool IsAccessibleToUser(HttpContext context, SiteMapNode node) 
{ 
    return <condition in which access is allowed> 
} 
1

결국 나는 XmlSiteMapProvider에서 파생하여 내 보안 트리밍을 구현했습니다. 그것은 충분히 간단했다.

public override SiteMapNodeCollection GetChildNodes(SiteMapNode node) 
{ 
    return CustomSecurityTrim(base.GetChildNodes(node)); 
} 
+3

더 나은 솔루션은, 대단히 감사합니다 IsAccessibleToUser – Zyphrax

+0

Zyphrax을 무시하는 것입니다. – VikciaR

+0

@Zyphrax는 해결책으로 솔루션을 게시하여 전환 할 수 있습니까? – Ekevoo