具有sitecore域的匿名用户

时间:2011-04-13 23:53:05

标签: configuration dns sitecore anonymous sitecore6

我正在检查这是否是一个sitecore错误,或者我是否遗漏了一些明显的错误。

编辑澄清:我遇到的问题是我正在尝试在Domains.config文件中设置配置设置,以便Sitecore不应该创建(和/或返回)以这种方式设置的域的匿名用户。但是,如果我在域上使用Domain.GetUsers()函数,我仍然会返回匿名用户。

成员资格提供程序是自定义构建的,并以只读模式连接到LDAP。

详细

使用Sitecore 6.4.1并在App_Config / Security / domains.config中提供以下域配置

<domain name="DOMAINNAME" ensureAnonymousUser="false" anonymousUserName="" everyoneRoleName="" />

以及domain.config文件中的这些注释

anonymousUserName: <snip> Set to blank to disable the anonymous user for the domain. Optional
ensureAnonymousUser: Indicates if the domain should ensure that an anonymous user for the domain exists in the Membership database. Optional - default value: false
everyoneRoleName: <snip> Set to blank to disable the everyone role for the domain. Optional - default value: Everyone

如果我使用以下代码,

List<Sitecore.Security.Accounts.User> users = new List<Sitecore.Security.Accounts.User>();
var domain = Sitecore.Security.Domains.Domain.GetDomain(DOMAINNAME);
users.AddRange(domain.GetUsers().ToArray<Sitecore.Security.Accounts.User>());

我收到用户列表中包含的匿名用户。我假设从domain.config文件中的注释,如果我如上所述设置我的域,我不应该得到匿名用户。

有什么明显的东西我不见了吗?

2 个答案:

答案 0 :(得分:0)

只是一个猜测,因为我之前还没有使用过6.4或者调整任何类型的设置......但是我相信Sitecore总是预先打包成为会员中的匿名用户。通过将ensureAnonymousUser设置为false,您只是告诉它不要确保其存在,但默认情况下它已存在。你为什么不尝试这个测试:

  1. ensureAnonymousUser设置为true,然后从用户管理器中删除 [*] 匿名用户。
  2. 退出并重新登录,看看它是否在那里。如果是这样,那么“确保”方面的工作。所以...
  3. ensureAnonymousUser设置为false然后执行相同的操作。用户是否回来了?
  4. 这真的只是它如何运作的预感 - 我现在没有这样的环境可以玩,但它值得一试。

    [*] - 要从用户管理器中删除用户,请转到 Sitecore&gt;安全&gt;用户管理器

答案 1 :(得分:0)

我认为您使用的会员提供商还有更多问题。看看Active Directory Module

也许这可以帮到你。