2012-04-21 135 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

相关问题