重定向至安全修剪菜单节点

本文关键字:菜单 节点 修剪 安全 重定向 | 更新日期: 2023-09-27 18:23:45

我已经按照本教程中的描述实现了SiteMap安全修剪:ASP.NET菜单和SiteMap安全裁剪

菜单工作正常。我想更进一步,将用户重定向到修剪后的菜单中的第一个节点。根据每个用户的角色,菜单会有所不同,因此重定向URL需要从菜单本身或网站地图文件中派生。

关于如何做到这一点,有什么建议吗?

重定向至安全修剪菜单节点

我似乎至少找到了一个选项:我为MenuItemDataBound创建了一个事件处理程序,并根据绑定到菜单的第一个项目的Url进行重定向,如下所示:

在aspx上,设置菜单的OnMenuItemDataBound="Menu1_MenuItemDataBound"

然后在代码后面创建了以下方法:

protected void Menu1_MenuItemDataBound(object sender, MenuEventArgs e)
{
    string Url = ((SiteMapNode)e.Item.DataItem).Url;
    Response.Redirect(Url);
}

似乎如预期的那样工作。如果你有更好的解决方案,请告诉我。