我安装了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 \匿名用户(未登录用户)返回true。
以前有人遇到过这个问题吗? 请告诉我哪里出错了。
答案 0 :(得分:2)
当我使用Sitecore 6.6时,我也回过头来解决了这个问题,我不确定它是否会在以后的版本中出现问题。基本上,当您在将参数domains.config
设置为true的情况下修改ensureAnonymousUser
时,该域中的匿名用户(在本例中为Extranet)是在数据库中创建的 - 它可能直到您更改了该设置。
在Sitecore中,所有未登录的用户都以用户*domain*/anonymous
的身份查看该网站。由于Sitecore的成员身份基于.NET成员身份,因此它确定用户使用该帐户登录。
因此,我建议您使用Sitecore.Context.User.IsAuthenticated
完成额外检查,以检查用户帐户的用户名是*domain of site*/anonymous
,Sitecore.Context.User.Name
,如果返回false,则会显示错误。
修改强>
我已确认Sitecore.Context.User.IsAuthenticated
返回true *domain*\Anonymous
用户已在Sitecore 8中修复。因此,您可以使用它来确定用户是否已登录而未使用*domain*\anonymous
帐户
答案 1 :(得分:0)
我们终于解决了这个问题!这是因为我们为解决Sitecore ECM遇到的问题而添加的修复程序。问题是Sitecore在我们点击消息预览时就会注销。因此,我们按照以下线程中给出的步骤来解决问题。
https://stackoverflow.com/a/30836600/4165670
但是我们没有像在线程中那样测试匿名用户。我们从未将此代码推送到Content Delivery网站以及何时 我们创建了新域名,此代码已通过其他一些代码推送到Content Delivery站点。
由于我们在代码中将当前用户设置为活动用户,因此它开始将外部网\匿名用户显示为当前用户。