1

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

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

    <siteMapNode url="workflow.aspx?Location=Process1" description="Process1">

    <siteMapNode url="workflow.aspx?Location=Process2" description="Process2">

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

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

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

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

    SiteMap.CurrentNode==null;

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

4

3 回答 3

2

尝试这个:

href=workflow.aspx?Location=Process1&amp;UserID=12&amp;IDWorkflowLocation=3340 
于 2009-06-04T20:10:42.990 回答
0

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

于 2009-06-05T13:21:16.950 回答
0

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

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

希望这可以帮助。

于 2009-06-05T08:35:57.197 回答