【问题标题】:Anonymous users with sitecore domains具有 sitecore 域的匿名用户
【发布时间】:2011-04-15 07:23:05
【问题描述】:

我正在检查这是否是一个站点核心错误,或者我是否遗漏了一些明显的东西。

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

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

详情

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

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

以及该 domain.config 文件中的这些 cmets

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 文件中的 cmets 假设,如果我如上所述设置我的域,我不应该获得匿名用户。

我有什么明显的遗漏吗?

【问题讨论】:

    标签: configuration dns sitecore anonymous sitecore6


    【解决方案1】:

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

    1. ensureAnonymousUser 设置为true,然后从用户管理器中删除[*]匿名用户。
    2. 注销并重新登录,看看它是否再次出现。如果是这样,那么“确保”方面的工作就奏效了。所以...
    3. ensureAnonymousUser 设置为false 然后做同样的事情。用户回来了吗?

    这实际上只是对其工作方式的预感——我现在没有这样的环境可以玩,但值得一试。

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

    【讨论】:

    • 嗨,马克,ensureAnonymousUser 可能与我的观点无关,但我将其包括在内,因为它涉及匿名用户。将其设置为 true 确实可以确保在域中不存在匿名用户时创建匿名用户。 Sitecore 确实在 sitecore 域中带有匿名用户,但我正在尝试通过自定义只读 LDAP 成员资格提供程序设置非站点核心域,并且我不希望在 GetUsers() 函数中返回匿名用户表示非站点核心域。
    • 很高兴知道。您应该使用该信息更新问题,以便更好地理解您的问题。你看过docs for the LDAP module吗?
    • 我已编辑问题以提供说明。我正在使用自定义构建的 LDAP 成员资格提供程序,因为 LDAP 模块太多并且没有为我提供此客户端所需的内容。
    【解决方案2】:

    我认为这对您使用的会员提供商来说是更多问题。看看Active Directory Module

    也许这对你有帮助。

    【讨论】:

    • 这可能是我的问题的一部分,我写了会员提供程序,因为 AD 模块没有为这个客户做我们需要做的事情。我的主要问题是,如果该配置文件中的设置正确,我认为 sitecore 不应该创建(或返回)匿名用户?
    • Sitecore 与此无关。会员提供者之上只有包装器。使用开箱即用的标准 ASP.Net 安全性link。你需要在那里挖掘。或者实现你自己的会员提供者。
    • 正如我在第一条评论中所说,我确实实现了我自己的会员资格提供程序。您提供的链接没有讨论匿名用户,所以我仍然认为这是特定于站点核心的事情,特别是 domain.config 文件包含anonymousUserName 和everyoneRoleName 设置以及与这些设置相关联的cmets。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    相关资源
    最近更新 更多