【问题标题】:sitemap shortcoming站点地图缺点
【发布时间】:2009-06-04 20:05:14
【问题描述】:

我只能使用 SiteMap 进行身份验证。我是一位经验丰富的开发人员,以前不必使用 SiteMap,所以我可能由于范式转变而遗漏了一些东西。

为了绕过 SiteMap 中的 url 限制,我巧妙地!> 附加了一个查询字符串值:

    

    

页面根据查询字符串值动态返回适当的信息/显示,并且我没有多个存根页面。一切正常,这似乎是个好主意,直​​到...

经理现在想要访问该页面并编辑以他们为别名的员工的工作,因此他们需要单击如下链接:

    href=workflow.aspx?Location=Process1&UserID=12&IDWorkflowLocation=3340

{更新解释} 它正确到达页面,但是

    SiteMap.CurrentNode==null;

因为站点地图中已经有一个查询字符串,它没有正确附加。我真的不想制作唯一命名的存根 .aspx 页面。有什么想法吗?

【问题讨论】:

    标签: asp.net sitemap


    【解决方案1】:

    试试这个:

    href=workflow.aspx?Location=Process1&UserID=12&IDWorkflowLocation=3340 
    

    【讨论】:

    • 不。它到达目标页面,但随后 SiteMap.CurrentNode ==null
    【解决方案2】:

    您是否尝试过在运行时以编程方式修改站点地图节点?本文解释了如何:http://msdn.microsoft.com/en-us/library/ms178425.aspx

    我过去使用过这个,但我似乎记得 SiteMapResolve 事件会在每个请求上触发(即使您在特定的 WebForm 上定义它)。

    希望这会有所帮助。

    【讨论】:

    • 谢谢,我看了一下,但是因为 Sitemap.CurrentNode 属性在到达页面时为空,所以这不起作用。
    • 显然问题是因为 SiteMap 已经包含一个查询字符串,它无法处理更多的查询字符串参数。
    【解决方案3】:

    您需要扩展 SiteMap 类,覆盖 CurrentNode 属性并在其中获取一些您自己的逻辑来捕捉它。

    【讨论】:

    • 同意。覆盖provider中的CurrentNode,返回Http请求匹配的节点。
    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 2015-08-11
    • 2011-06-07
    • 2016-09-09
    相关资源
    最近更新 更多