我目前正在嘗試實現一個自定義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