问题标签 [securitytrimmingenabled]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2012 浏览

asp.net - XmlSiteMapProvider 如何检查用户是否处于指定角色?

我推出了自己的 SiteMapProvider 继承System.Web.XmlSiteMapProvider

我想覆盖检查用户是否处于 siteMapNode 属性中指定的角色的逻辑roles

我怎样才能做到这一点?XmlSiteMapProvider 调用哪个类的成员来检查 if securityTrimmingEnabled="true"

0 投票
1 回答
154 浏览

asp.net - 是否可以使用 securityTrimmingEnabled=true 阻止页面打开

我有自定义 SiteMapProvider 和 RoleProvider 可以正常工作:如果请求的页面中未提及当前用户的角色,则IsAccessibleToUser返回。falseSiteMapNode.Roles

所以面包屑或菜单不显示项目。

但是现在用户仍然可以直接键入显示的 URL 并打开一个页面。我怎样才能阻止这种行为?

我还有下一个 Web.config 设置:

0 投票
1 回答
2581 浏览

asp.net - 基于角色的菜单不起作用,我做错了什么?

这是概述

  1. 创建会员资格
  2. 创建角色
  3. 创建站点地图(修改为使用角色=“管理员”)
  4. 使用菜单智能标签中的新数据源创建菜单并将 web.sitemap 绑定到菜单
  5. 修改 web.config 以启用 securityTrimmingEnabled

它是这样工作的。如果我将角色分配给站点地图中的根节点,则菜单对于除分配给它的角色之外的所有其他角色都是正确隐藏的。

如果我在其中一个子菜单中使用角色,它就不起作用。有谁知道为什么?

网站地图

web.config 文件(修改)

0 投票
1 回答
349 浏览

asp.net - asp.net SiteMap 中的 SecurityTrimming

我在我的网站上遇到了奇怪的问题,我有菜单,我正在处理它asp:menuSiteMap现在我想限制menu's基于roles,所以我securityTrimmingEnable="true"在 web.config 中使用,现在我的问题是我有一些需要启用的菜单项由 2 种类型的用户(管理员和登录用户),现在在Web.Sitemap文件中,我创建了siteMapNode在菜单中使用的,这里我添加了roles属性来指定哪些类型的用户可以访问菜单,有一个主菜单应该只能由这 2 个用户访问,其他任何人都不能访问(即非匿名),现在我找不到在roles属性中指定多个角色的方法,我也尝试过指定*,但这似乎也适用于非匿名用户,即不是我的要求,这是我的样本web.sitemap文件

在上述情况下,主页菜单仅对管理员可用。现在,如果我指定*使其对非管理员但已登录的用户可用,它也适用于未登录的用户。

无论如何,我可以让管理员和登录用户可以使用上述菜单。
下面是我的 web.config 设置:

0 投票
1 回答
687 浏览

clickable - MVCSiteMapProvider:启用安全修剪的不可点击节点

我正在使用 MVSiteMapProvider,v4.6.1

这是我的问题:我的菜单中有一部分只对管理员可见。我通过启用安全修剪和装饰我的控制器和/或控制器方法来定义修剪标准来实现这一点。

管理任务

  • 添加
  • 编辑
  • 消除

我需要做的是使“AdminTasks”节点不可点击,但仍然只对管理员可见。

我观察到的行为是,如果我clickable="false"在站点地图中标记“AdminTasks”,则无论用户是否为管理员,该节点都会显示给所有人。看起来,在标记的节点clickable='false'中没有执行安全修整。

我的假设是,在没有过多探索代码的情况下,当节点被标记时clickable='false',SiteMapProvider 不会尝试解析任何路线(因为导航目的无论如何都不需要它);但这样做时,它不会检查控制器中的装饰,因此会跳过安全修整。

我的假设正确吗?有没有办法让一个不可点击的节点仍然被安全修剪?

谢谢