gpt4 book ai didi

Sitecore.Context.User.IsAuthenticated 对于 Extranet\匿名用户返回 true

转载 作者:行者123 更新时间:2023-12-02 21:39:32 25 4
gpt4 key购买 nike

我安装了 Sitecore 6.6。我想向 Sitecore 添加一个新域;由于我的 Sitecore 实例部署在两台服务器中,每个服务器都有两个 Sitecore 站点,它们指向不同的 Web 数据库,但具有相同的核心、主数据库和分析数据库,因此我无法使用 Sitecore 域管理器来完成此操作。因此,我想到通过编辑服务器中的 App_Config\Security\domains.config。以下是我的domains.config。

<?xml version="1.0" encoding="utf-8"?>
<domains xmlns:sc="Sitecore">
<domain name="sitecore" ensureAnonymousUser="false" />
<domain name="extranet" defaultProfileItemId="{AE4C4969-5B7E-4B4E-9042-B2D8701CE214}" />
<domain name="default" isDefault="true" />
<sc:templates>
<domain type="Sitecore.Security.Domains.Domain, Sitecore.Kernel">
<ensureAnonymousUser>true</ensureAnonymousUser>
<locallyManaged>false</locallyManaged>
</domain>
</sc:templates>
<domain name="Station" defaultProfileItemId="{F181ED3D-F342-46E6-B6F6-2A6A6173B513}" />
<domain name="Emailcampaign" />
</domains>

我在最后添加了一个域(MyDomain),如下所示。

<?xml version="1.0" encoding="utf-8"?>
<domains xmlns:sc="Sitecore">
<domain name="sitecore" ensureAnonymousUser="false" />
<domain name="extranet" defaultProfileItemId="{AE4C4969-5B7E-4B4E-9042-B2D8701CE214}" />
<domain name="default" isDefault="true" />
<sc:templates>
<domain type="Sitecore.Security.Domains.Domain, Sitecore.Kernel">
<ensureAnonymousUser>true</ensureAnonymousUser>
<locallyManaged>false</locallyManaged>
</domain>
</sc:templates>
<domain name="Station" defaultProfileItemId="{F181ED3D-F342-46E6-B6F6-2A6A6173B513}" />
<domain name="Emailcampaign" />
<domain name="MyDomain" />
</domains>

一旦我这样做,Sitecore.Context.User.IsAuthenticated 就开始在代码中为 Extranet\Anonymous 用户(非登录用户)返回 true。

以前有人遇到过这个问题吗?请让我知道我哪里出错了。

最佳答案

我在使用 Sitecore 6.6 时也遇到过这个问题,我不确定这是否是后续版本中的问题。本质上,当您修改 domains.config 并将参数 ensureAnonymousUser 设置为 true 时,该域的匿名用户(在本例中为 Extranet)会在数据库中创建 - 它可能不会直到您更改该设置为止。

在 Sitecore 中,所有未登录的用户都以用户 *domain*/anonymous 的身份查看该网站。由于 Sitecore 的成员资格基于 .NET 成员资格,因此它确定用户使用该帐户登录。

因此,我建议您对 Sitecore.Context.User.IsAuthenticated 进行额外检查,以检查用户帐户的用户名是否为*网站域名*/anonymousSitecore.Context.User.Name,如果是则返回 false。

编辑

我已经确认 Sitecore.Context.User.IsAuthenticated 对于 *domain*\Anonymous 用户返回 true 已在 Sitecore 8 中修复。因此您可以使用它来确定如果用户已登录且未使用 *domain*\anonymous 帐户。

关于Sitecore.Context.User.IsAuthenticated 对于 Extranet\匿名用户返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32049860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com