2012-10-17 18 views
1

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

回答

2

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

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

据我所知,模式已经从OMS变成了DMS,但最重要的因素是数据按会话记录,并没有改变。

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

+0

感谢您的回答 – avoliva

0

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

关于如何解决这个here在这个StackOverflow答案的建议。