2012-04-21 111 views
0

我已經通過在SiteMap文件中的mvcSiteMapNode中指定節點提供程序名稱來實現動態節點提供程序,並且它工作正常。但是,我只想在用戶通過身份驗證後添加動態節點。原因是我想訪問HttpContext.User.Identity,以便我可以通過user.Identity過濾節點。如何將節點添加到動態節點提供程序?

因此,我已經刪除SiteMap文件中的mvcSiteMapNode,而是在Action方法中調用GetDynamicNodeCollection方法(一旦用戶已通過身份驗證),並且節點已被用戶過濾。這也按預期工作。

我的問題:一旦我有節點,我怎麼把它們添加到SiteMapNodeCollection,使它們顯示在從返回的ActionResult的看法?

回答

1

這可能將是一個SiteMapNodeVisibility提供了一個DynamicNodeProvider工作,而且不。

原因是節點的緩存。

+0

除了是否使用了正確的供應商,主要的問題是,當第一次被訪問的網站地圖提供者被觸發。這意味着無法控制節點何時生成和呈現。文檔實際上並不存在,GITHUB論壇上的迴應也是如此。我正在放棄MvcSiteMapProvider,因爲它的應用程序非常有限。 – Greg 2012-04-23 13:12:09