代码之家  ›  专栏  ›  技术社区  ›  Slauma

安全剪裁是否与Web表单路由一起工作?

  •  0
  • Slauma  · 技术社区  · 14 年前

    在web.config中,我已使用 securityTrimmingEnabled="true" 在我的主页面上是 asp:Menu 控件绑定到 asp:SiteMapDataSource . 此外,我还配置了对子文件夹“admin”中所有页面的受限访问(在此子文件夹中使用另一个web.config)。

    如果我在 Web.sitemap

    <siteMapNode url="~/Admin/Default.aspx" title="Administration" description="" >
    

    …只有“admin”角色的用户才具有与该sitemapnode相关的菜单项。因此,这是正常的和预期的。

    现在,我在global.asax中定义了一个URL路由,将物理文件映射到一个新的URL:

    System.Web.Routing.RouteTable.Routes.MapPageRoute("AdminHomeRoute", 
        "Administration/Home", "~/Admin/Default.aspx");
    

    但当我在站点地图文件中使用此路由URL时…

    <siteMapNode url="Administration/Home" title="Administration" description="" >
    

    …似乎安全修整不起作用:菜单项对所有用户都可见。(但是,对页面的访问仍然受到限制,因此非管理员用户选择菜单项不会导航到受限制的页面。)

    问题:在ASP.NET 4.0 Web窗体中,是否有任何设置使安全修整与URL路由一起工作,这是迄今为止我遗漏的?我做错什么了吗?有什么工作吗?

    谢谢你的帮助!

    1 回复  |  直到 14 年前
        1
  •  1
  •   Dave Sussman    14 年前

    我在ASP.NET论坛上回答了这个问题( http://forums.asp.net/t/1563781.aspx ,但答案是否定的。不过,您可以自定义提供者;请参见论坛帖子中的代码。