将Sitecore DMS访客信息保存到用户

时间:2012-10-17 22:12:53

标签: cookies sitecore sitecore6 sitecore-dms

使用Sitecore DMS,您可以根据用户的访问习惯创建配置文件并显示特定页面。此信息使用cookie存储,因此每当用户返回时,他们都具有相同的访问者个人资料。但如果他们删除了他们的cookie或切换浏览器,那么信息就会消失。现在我想要做的是将这个访问者信息保存到sitecore用户,因为他们可以登录,他们的访问者个人资料将与他们离开时相同,无论他们在哪里或他们使用什么浏览器。我一直试图解决这个问题一段时间,但没有成功。每当我向用户登录并创建特定的配置文件时,我会在注销后立即删除该配置文件。这对Sitecore来说甚至是可能的,因为当cookie被不断删除时,只有基于cookie的配置文件似乎很愚蠢。

2 个答案:

答案 0 :(得分:2)

使用Sitecore Analytics,您有两个跟踪Cookie,一个用于Session,另一个用于GlobalSession(在正常的asp.net会话中不会过期)。遗憾的是,Sitecore不会根据GlobalSession跟踪配置文件关键分数,而是通过单个asp.net会话跟踪。整个系统都是以此为基础的,而且非常令人失望。 “

为了解决这个问题,我使用OMS并使用Reflector取消分配并重写一些分析代码,以便通过全局会话进行记录。它还需要一些架构更改以及新规则......相当广泛的工作。在一天结束时,由于数据库的大小和我们对非常有限数量的功能的需求,我最终创建了一个表并通过globalsession记录配置文件键值。

根据我的理解,架构已从OMS更改为DMS,但最重要的因素是会话记录的数据没有改变。

关于存储用户的ID,您可以将其与“标签”相关联,我相信,该标签与globalsessionid一起存储,至少在OMS中存储。但是,Sitecore不会更新标记记录,因此每个全局会话最终会有多个记录。如果您将此值存储在每个请求中,那么该表将会很快膨胀。

答案 1 :(得分:0)

这有几个原因......其中最重要的是,在许多情况下,您没有登录用户来关联此信息。配置文件数据不存储在Cookie中...它存储在Analytics表中。但它与具有唯一ID的cookie相关联,一旦删除,ID(希望!)将不会再次使用。

有关如何在此StackOverflow答案中解决此here的建议。