这真的是一个非常简单的问题,但我似乎无法在这里或在SDN上找到答案。
如何查看为访问过该网站的用户存储的个人资料值?
通过示例详细说明:假设我有3个访问者,访问该网站,他们在某些时候点击了一个时事通讯项目,因此他们的电子邮件已与他们的asp会话ID配对,所以我有类似的东西
现在让我们说User1@email.com主要关注摩托车,我有一套个人资料键,包括汽车,摩托车和自行车。 User1主要点击摩托车页面,因此该用户的密钥值更高。
在某个地方,我应该能够看到用户数据及其存储值(示例数据:汽车10,摩托车250,自行车40)。
我在哪里可以看到这些数据?或者这完全不可能?
答案 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并查找所有出现的问题。