현재 사용자 지정 사이트 맵 공급자를 구현하려고합니다. 그것에 대한 몇 가지 자습서를 읽었으며 그들의 리드를 따라갔습니다.ASP NET MVC에서 Custom SiteMapProvider를 사용하는 방법은 무엇입니까?
MyProject.Security에있는 MySiteMapProvider라는 XmlSiteMapProvider 하위 클래스를 만들었습니다.
나는 나의하여 Web.config의 system.web 섹션에 다음 코드를 추가했습니다 :
<siteMap defaultProvider="MySiteMapProvider" enabled="true">
<providers>
<add name="MySiteMapProvider"
description="Custom SiteMap provider."
type="MyProject.Security.MySiteMapProvider "
siteMapFile="Web.sitemap"
securityTrimmingEnabled="true" />
</providers>
</siteMap>
하지만 내 제공자가 제대로 사용되지 않음을 확신합니다. 나는 심지어 구현으로 시작할 수 없었다. 나는 다음과 같은 (의사) 구현을 포함했는지 확인하려면
public override bool IsAccessibleToUser(System.Web.HttpContext context, System.Web.SiteMapNode node)
{
Debug.Print("Hello World");
throw new Exception();
return base.IsAccessibleToUser(context, node);
}
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection attributes)
{
Debug.Print("Hello World");
throw new Exception();
base.Initialize(name, attributes);
}
public override SiteMapNode BuildSiteMap()
{
Debug.Print("Hello World");
throw new Exception();
return base.BuildSiteMap();
}
을하지만 내가 원하는대로 내가만큼 사이트를 사용하여 탐색 할 수 있습니다, 예외는 등장하지 않고 디버그 콘솔은 전혀 안녕하세요 세계를 보여줍니다.
중요한 것을 잊었습니까?
내 코드를 실행하는 것이 좋습니다. 그러나 루트 노드 만 확인합니다. 그리고이 특정 코드가 호출 될 때만 실행됩니다. 그러면 내가 어떻게 더 가겠습니까? – ckonig