我已经设置了一个带有外部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编辑器帐户的更改不同)。
答案 0 :(得分:2)
如果您已实施成员资格提供程序,则不应通过配置设置安全性,而应通过Sitecore后端界面设置安全性。 Sitecore拥有自己的实现访问权限的方式,即使您已经实现了自己的成员资格提供程序,它也会使用该方法。
因此,在shell中,您应该打开安全编辑器,只允许访问您想要的角色。
另请参阅安全参考指南http://sdn.sitecore.net/Reference/Sitecore%206/Security%20Reference.aspx
答案 1 :(得分:1)
使用Sitecore授权。它全部实现并基于Sitecore中的用户和角色。有关于如何实现基于角色的安全性的文档。当你绑定例如Active Directory用户时,你应该写一些东西来将AD用户导入Sitecore并在那里设置角色,因为Sitecore拥有它自己的安全层。