System.Web.XmlSiteMapProvider
을 상속하는 자체 SiteMapProvider를 롤백합니다.XmlSiteMapProvider는 사용자가 지정된 역할을 수행하는 방법을 어떻게 확인합니까?
나는 siteMapNode의 재산 roles
에 지정된 역할로 사용자를 확인하는 논리를 무시하려면 :
<siteMapNode url="Add.aspx?type=user" title="Add user" roles="admin" />
내가 어떻게 할 수 있습니까? 어느 클래스의 멤버가 securityTrimmingEnabled="true"
일 경우 XmlSiteMapProvider가이를 확인하기 위해 호출합니까?
를 추가 할 수 있습니다 사이트 맵에
다음의 Web.config에 이것을 추가하는 것입니다 내 질문은 유감스럽게도 사용자를 한동안 끌어 들이지 않았으므로 솔루션을 직접 찾아서 다행히 해내 야했습니다. 당신은 내가 동시에 OP이고 단일 대답이 나도다고 말할 수 없습니다. 자신의 대답을 수락하기 때문에 명성을 가져 오지 않기 때문에, 나는 당신의 것을 받아 들일 수있어서 기쁩니다 :) 고마워요! – abatishchev
@aba - 사실, 나는 OP와 대답이 같은 사람에게서 나왔다는 것을 알지 못했다. 단지 지침이 좀 더 분명 할 수 있다는 것이다. 당신이 그것을 이해하고 기쁘다면 기꺼이 도와 드리겠습니다. –
좋아, 나는 IsAccessibleToUser를 재정의하여 자신의 논리를 적용하여 검사 할 수 있습니다. 하지만 원래 * IsAccessibleToUser는 어떻게 작동합니까? 리플렉터는'context.User.IsInRole (role)'을 체크한다. 역할을'IPrincipal'으로 설정하는 방법을 알고 있습니까? – abatishchev