Kentico 8 - 页面访问:拒绝除角色以外的所有用户

时间:2016-03-24 09:46:27

标签: c# kentico

我现在要做的是只允许特定角色的用户访问页面(及其子页面)。这就是我现在所得到的:

用户

用户A - > RoleA成员,RoleB

用户B - > RoleB的成员。

内容树

  • MainNode

    • PAGE TO SECURE

    • 其他需要公开的网页。

允许"页面安全"

  • 添加了#34;角色A"并检查"允许" on"完全控制"。 "要求的身份验证"设置为"是"。

期望的结果

" PAGE TO SECURE"仅当用户是角色A的一部分时才可访问。事实上,该事实也是其他角色的一部分。

我的内容

  • 如果用户通过身份验证,则可以看到" Page以保护"无论角色如何。

我做了什么

  • 将所有其他角色的页面权限添加到" Deny"。自从"拒绝"优先于"允许",尽管也得到了正确的角色,但仍然不允许用户A查看该页面。

  • 遵循此线程http://devnet.kentico.com/forums?forumid=54&threadid=23234上的建议(适用于kentico 5但是我迄今为止发现的唯一关于此问题的线索)添加另一个节点并将其设置为父节点要保护的页面,然后设置拒绝所有这个新的父节点,然后断开继承,只允许角色A.这不起作用,因为用户B仍然可以访问该页面。

  • 上面的文章讨论了如何创建自定义Web部件。我不想将这种方法用于这样的基本功能。希望有另一种方法来实现这一目标。

3 个答案:

答案 0 :(得分:3)

您不能通过权限执行此操作,因为许可" Deny"排名高于"允许"。因此,当用户处于A允许和B拒绝的角色A和B时,拒绝阻止。 唯一的方法是创建自己的Web部件,以管理它。

答案 1 :(得分:0)

我害怕,你错了。我能够在本地设置它。

以下是我的配置:

页面安全:

  • “我的测试角色”具有阅读和浏览权限
  • 它甚至不需要身份验证,但在需要身份验证时也可以使用

设置 - >安全与安全成员

  • 检查页面权限设置为“所有页面”(如果页面需要身份验证,安全区域也应该有效)

对于不在“我的测试角色”中的任何人,我都被拒绝访问。

希望这有帮助

答案 2 :(得分:0)

  • 转到PAGE TO SECURE
  • 设置需要身份验证
  • 添加角色A,并授予对文档的访问权限
  • 确保经过身份验证的用户不在列表中(如果需要,可以中断继承。唯一列出的应该是角色A)

只有角色A中的人才能访问该页面。如果你有角色" Autenticated Users"列出的访问权限设置为拒绝,这将胜过您的角色选择。