我目前正在尝试实现自定义站点地图提供程序。我已经阅读了几个关于它的教程,并遵循了他们的领导。
我创建了一个名为 MySiteMapProvider 的 XmlSiteMapProvider 子类,它位于 MyProject.Security 中。
我已将以下代码添加到我的 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>
但我确信我的 Provider 使用不正确。我什至无法从实施开始。为了验证我是否包含了以下(伪)实现:
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();
}
但是我可以使用该站点并尽可能多地导航,没有出现异常,并且调试控制台根本没有显示 Hello World。
我是不是忘记了什么重要的事情?