Cookies 将Sitecore DMS访问者信息保存给用户

Cookies 将Sitecore DMS访问者信息保存给用户,cookies,sitecore,sitecore6,sitecore-dms,Cookies,Sitecore,Sitecore6,Sitecore Dms,使用Sitecore DMS,您可以根据用户的访问习惯创建配置文件并显示特定页面。此信息使用cookie存储,因此每当用户返回时,他们都拥有相同的访问者配置文件。但如果他们删除cookie或切换浏览器,这些信息就会消失。现在我想做的是将这些访问者信息保存到sitecore用户,因为他们可以登录,并且他们的访问者配置文件将与离开时相同,无论他们在哪里或使用什么浏览器。我想弄明白这一点已经有一段时间了,但没有成功。每当我与用户一起登录并创建特定的配置文件时,该配置文件将在我注销后立即删除。这对Sit

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

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


在这个StackOverflow答案中有一个关于如何绕过此问题的建议。

使用Sitecore Analytics,您有两个跟踪cookies,一个用于会话,另一个用于GlobalSession(在正常asp.net会话中不会过期)。不幸的是,Sitecore没有基于GlobalSession跟踪配置文件关键分数,而是通过单个asp.net会话跟踪。整个系统都基于此,这非常令人失望

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

据我所知,模式已从OMS更改为DMS,但最重要的一个因素,即按会话记录数据,并未更改

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