查看单个访问者的Sitecore DMS配置文件键值

时间:2014-04-22 11:20:02

标签: sitecore sitecore-dms

这真的是一个非常简单的问题,但我似乎无法在这里或在SDN上找到答案。

如何查看为访问过该网站的用户存储的个人资料值?

通过示例详细说明:假设我有3个访问者,访问该网站,他们在某些时候点击了一个时事通讯项目,因此他们的电子邮件已与他们的asp会话ID配对,所以我有类似的东西

  • User1@email.com和附加的asp会话ID
  • User2@email.com和附加的asp会话ID
  • User3@email.com和附加的asp会话ID

现在让我们说User1@email.com主要关注摩托车,我有一套个人资料键,包括汽车,摩托车和自行车。 User1主要点击摩托车页面,因此该用户的密钥值更高。

在某个地方,我应该能够看到用户数据及其存储值(示例数据:汽车10,摩托车250,自行车40)。

我在哪里可以看到这些数据?或者这完全不可能?

2 个答案:

答案 0 :(得分:2)

您要查找的信息并非针对(ASP.Net成员资格)用户进行存储 - 它是针对(Sitecore DMS)访问者存储的。

以下是查询当前访客个人资料数据的一种方法:

var visit = Tracker.CurrentVisit;
foreach (var profile in visit.Profiles)
{
    if (profile.ProfileName.ToLower() == "interest")
    {
        // Look at individual values
        var values = VisitProfile.Parse(profile.PatternValues);
        var motorcycles = values["motorcycles"];

        // Look at pattern matched
        profile.UpdatePattern();
        var matchingPattern = profile.PatternLabel;
    }
}

答案 1 :(得分:2)

我自己解决了。我应该提一下,它将被用于定制的时事通讯。

首先,我将内部sitecore用户名附加到邮件列表。

var username = System.Web.Security.Membership.GetUserNameByEmail(email);

然后我可以从用户名中获取访客ID。

var visitor = Sitecore.Analytics.Automation.VisitorManager.GetVisitorByExternalUser(username);

在此访问者中,我查找的配置文件密钥的数据集位于visitor.DataSet.Profiles

现在我只需要获得多个访问者,但这只是进行SQL调用而不是使用VisitorManager.GetVisitorByExternalUser并查找所有出现的问题。