【问题标题】:How to add a class to locked pages in asp:Menu如何在 asp:Menu 中将类添加到锁定页面
【发布时间】:2012-03-14 23:12:52
【问题描述】:

我正在将 web.sitemap 绑定到 asp:Menu,并希望将类分配给需要登录才能访问的菜单项。

我知道在 web.config 文件的 siteMap 部分中,如果我设置 securityTrimmingEnabled="true" 它将只显示该用户可用的项目(角色/注销/登录)。这对我来说很好,但用户希望看到这些链接。

所以我试图指示这些页面已被锁定,最好为这些链接添加一个类。

提前致谢!

【问题讨论】:

  • 根据this meta discussion,从帖子中删除“嗨”和“谢谢”之类的内容是非常标准的程序。我并没有试图以任何方式破坏你的问题。
  • 我明白,但我订阅了 RSolberg 的回答。

标签: asp.net sitemap aspmenu-control


【解决方案1】:

您可以为MenuDynamicItemTemplate 属性使用自定义ITemplate。作为替代方案(我猜代码较少,但我从未尝试过)您可以附加到 MenuItemDataBound 事件。

【讨论】:

  • 到目前为止听起来不错,但我知道如何捕捉页面是否需要用户登录吗?
  • 创建您的 ITemplate(点击链接作为示例),在调试中附加并观察您得到的结果。 SiteMapNode 有一个方法来检查当前登录的用户是否可以访问它。
  • 我似乎无法弄清楚如何做到这一点,我已经尝试过 MenuItemDataBound 方法,并且 DataItems 并没有真正的属性来判断它们是否可以访问。至于 ITemplate,我不知道如何创建自定义模板或从 SiteMapNode 获取此方法。
  • 是的,我看到了。还是不明白。我最终使用了 MenuItemDataBound 事件以及这个模拟 HttpRequest 的自定义类:stackoverflow.com/questions/3390719/… 它有点乱,但它可以工作
猜你喜欢
  • 1970-01-01
  • 2013-10-22
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 1970-01-01
  • 2019-10-29
  • 2020-06-08
  • 2015-03-15
相关资源
最近更新 更多