我目前正在尝试实现一个自定义SiteMap提供程序。我已经阅读了几篇关于它的教程,并且遵循了他们的主导。如何在ASP NET MVC中使用自定义SiteMapProvider?
我已经创建了一个名为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>
但我相信,我的供应商未正确使用。我甚至无法从实施开始。为了验证我已经包括以下(伪)执行:
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世界的。
我忘了重要的事吗?
好吧,执行我的代码。但它只对根节点进行检查。只有在调用这段特定的代码时才会执行它。那么我将如何进一步? – ckonig 2012-04-18 11:23:38