Sitecore.Context.User.IsAuthenticated对于extranet\Anonymous用户返回true

Sitecore.Context.User.IsAuthenticated对于extranet\Anonymous用户返回true,sitecore,sitecore6,Sitecore,Sitecore6,我已经安装了Sitecore 6.6。我想向Sitecore添加一个新域;由于我的Sitecore实例部署在两台服务器上,每台服务器上有两个Sitecore站点指向不同的web数据库,但指向相同的core、master和analytics数据库,因此我无法使用Sitecore域管理器进行此操作。因此我想通过在服务器中编辑App_Config\Security\domains.Config来手动执行此操作。下面是我的domains.config 真的 假的 我在末尾又添加了一个域(MyDoma

我已经安装了Sitecore 6.6。我想向Sitecore添加一个新域;由于我的Sitecore实例部署在两台服务器上,每台服务器上有两个Sitecore站点指向不同的web数据库,但指向相同的core、master和analytics数据库,因此我无法使用Sitecore域管理器进行此操作。因此我想通过在服务器中编辑App_Config\Security\domains.Config来手动执行此操作。下面是我的domains.config


真的
假的
我在末尾又添加了一个域(MyDomain),如下所示


真的
假的
当我这样做时,Sitecore.Context.User.IsAuthenticated开始在代码中为extranet\Anonymous用户(未登录用户)返回true

以前有人遇到过这个问题吗?
请告诉我哪里出了问题

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

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

因此,我建议您使用
Sitecore.Context.User.IsAuthenticated
完成额外的检查,以检查用户帐户的用户名是否为
*site*/anonymous
Sitecore.Context.User.Name
,如果返回false

编辑


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

我们最终解决了此问题!这是由我们为解决Sitecore ECM的问题而添加的修复程序引起的。问题是Sitecore习惯于在我们单击消息预览时立即注销。因此,我们按照下面线程中给出的步骤来解决这个问题

但我们并没有像在线程中那样对匿名用户进行测试。我们从未将此代码推送到内容交付站点中,并且 我们创建了一个新的域,这个代码和其他一些代码一起被推送到了内容交付站点


由于我们正在将当前用户设置为代码中的活动用户,因此它开始将该extranet\Anonymous用户显示为当前用户。

您是否为第二次配置粘贴了正确的代码?我看不出有什么不同。@Anton对此表示抱歉。有人编辑了这篇文章,并对它做了一些修改。现在看一看。在我的例子中,extranet\Anonymous用户在我更改domains.config之前已经存在,而对于非loggedin用户,我的用户名是extranet\Anonymous,Sitecore.Context.user.I验证为false。但是,当我添加一个域时,对于非loggedin用户,我开始将用户名设置为extranet\Anonymous,并将Sitecore.Context.User.I验证为true。有趣的是,如果我通过删除保存文件的域来删除新域,它仍然会出现相同的问题,但只是在我用旧文件替换domains.config文件之后。它开始工作。好奇-当检查用户名和身份验证时,你在哪个域?如果您在新的MyDomain域中,您应该会看到非loggedin用户为MyDomain\anonymous而不是extranet\anonymous我将在extranet\anonymous DomainOK中,正如我在回答中所说,成员身份识别默认\匿名登录是预期行为,对于我所研究的所有Sitecore 6.6都是如此,并且对于所有后续版本都是如此。因此,通过添加我在回答中描述的对*domain*\anonymous用户名的检查来解决这个问题