Sitecore根据(外部)用户的角色限制对站点区域的访问

时间:2011-08-25 12:00:41

标签: asp.net-membership sitecore sitecore6

我已经设置了一个带有外部ASP.NET成员资格数据库的Sitecore实例(有关此信息,请参阅我的earlier question),并且可以在网站上成功创建和编辑用户(不使用Sitecore用户管理器)。但是,我在网络配置中设置的位置元素(<configuration>下似乎没有任何效果 - 我可以访问所有区域,无论我是否登录。我是不确定我是否打算在<authorization>下添加<system.web>元素 - 我已经尝试了这个但它仍然没有效果。

仅供参考我在web.config中的<configuration>下:

<location path="en/administrators">
  <system.web>
    <authorization>
      <allow roles="Administrator"/>
      <deny users="?"/>
    </authorization>
  </system.web>
</location>

更新

总结一下Sitecore安全参考手册中提到的一些内容;有必要拒绝对“extranet \ Anonymous”用户帐户的读取访问权限到相关页面。这是在sitecore的安全编辑器中完成的。另请注意,必须执行发布才能使这些更改生效(与立即变为活动的sitecore编辑器帐户的更改不同)。

2 个答案:

答案 0 :(得分:2)

如果您已实施成员资格提供程序,则不应通过配置设置安全性,而应通过Sitecore后端界面设置安全性。 Sitecore拥有自己的实现访问权限的方式,即使您已经实现了自己的成员资格提供程序,它也会使用该方法。

因此,在shell中,您应该打开安全编辑器,只允许访问您想要的角色。

另请参阅安全参考指南http://sdn.sitecore.net/Reference/Sitecore%206/Security%20Reference.aspx

答案 1 :(得分:1)

使用Sitecore授权。它全部实现并基于Sitecore中的用户和角色。有关于如何实现基于角色的安全性的文档。当你绑定例如Active Directory用户时,你应该写一些东西来将AD用户导入Sitecore并在那里设置角色,因为Sitecore拥有它自己的安全层。