安全修剪是否可以使用Web表单路由?
-
05-10-2019 - |
题
在我的web.config中,我配置了一个SiteMappRovider securityTrimmingEnabled="true"
在我的主页上是一个 asp:Menu
控制与 asp:SiteMapDataSource
. 。此外,我还配置了对子文件夹“ admin”中所有页面的限制访问(使用此子文件夹中的另一个web.config)。
如果我将站点词放入 Web.sitemap
...
<siteMapNode url="~/Admin/Default.aspx" title="Administration" description="" >
...只有角色“ admin”中的用户才能与该站点通用的菜单项有关。因此,这是正常工作的,并且按预期工作。
现在,我已经定义了global.asax中的URL路由,将物理文件映射到新的URL:
System.Web.Routing.RouteTable.Routes.MapPageRoute("AdminHomeRoute",
"Administration/Home", "~/Admin/Default.aspx");
但是,当我在SiteMap文件中使用此路由-URL ...
<siteMapNode url="Administration/Home" title="Administration" description="" >
...似乎安全修剪不起作用:所有用户均可看到菜单项。 (不过,对页面的访问仍然受到限制,因此选择非Admin用户的菜单项不会导航到限制页面。)
问题:到目前为止,我是否错过了任何设置,以使安全修剪使用ASP.NET 4.0 Web表单中的URL路由?我做错什么了吗?有工作吗?
谢谢你的帮助!
解决方案
我已经在ASP.NET论坛上回答了这一点(http://forums.asp.net/t/1563781.aspx),但是答案是否定的。但是,您可以自定义提供商;在论坛帖子中查看代码。
不隶属于 StackOverflow