【问题标题】:Absolute URLs in Web.siteMapWeb.siteMap 中的绝对 URL
【发布时间】:2019-04-10 22:59:32
【问题描述】:

在一个网站项目(VS 2010)中,我确实有一个<asp:Menu>,它使用启用了安全修剪的System.Web.XmlSiteMapProvider 在 web.sitemap 上提供信息。

一切正常。显然,用户必须以“管理员”身份进行身份验证才能查看下面示例中的子节点。但这里的问题是 具有绝对 URL 的站点地图节点不会显示在菜单中。以下是 web.sitemap 的摘录:

<siteMapNode url="~/Administration/default.aspx" title="Administration" roles="Administrator" >
   <siteMapNode url="~/Administration/worksfine.aspx" title="Does show" />
   <siteMapNode url="http://pmspublic.in.ohchr.org" title="Does not show" />
</siteMapNode>

任何想法如何在不侵入菜单控件的 DataBound 事件的情况下完成此操作? 谢谢

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    因此启用了安全修剪,并且具有绝对 url 的节点位于受限制的 SiteMapNode 内。由于外部 URL 没有 web.config 来检查当前用户的权限,因此简单地删除了相应的站点地图节点。

    解决方案:roles="*" 添加到绝对 url 节点,该节点的安全修整将被跳过,因为任何人都可以访问该节点。像这样:

    <siteMapNode url="~/Administration/default.aspx" title="Administration" roles="Administrator" >
       <siteMapNode url="~/Administration/worksfine.aspx" title="Does show" />
       <siteMapNode url="http://pmspublic.in.ohchr.org" title="Does not show" roles="*" />
    </siteMapNode>
    

    【讨论】:

      猜你喜欢
      • 2018-01-29
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 2016-01-05
      • 2010-09-12
      相关资源
      最近更新 更多