我们有一个订阅表单,其中显示了匿名用户的3个字段(电子邮件,电话号码,兴趣)。当我们点击订阅时,我们需要将这些细节保存到extranet \ anonymous users。
表单看起来像Subscription Form
以下是我正在使用的代码:
protected void btnGo_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
try
{
var userProfile = Sitecore.Context.User.Profile;
userProfile.FullName = "Anonymous";
userProfile.ProfileItemId = "{C7E512C3-D10D-4EE7-A9D1-52474E858456}";
userProfile.Email = txtEmail.Text;
userProfile.SetCustomProperty("Phone Number", txtPhone.Text);
userProfile.SetCustomProperty("Interests", ddlInterests.SelectedItem.Text);
userProfile.Save();
}
catch (System.Web.Security.MembershipCreateUserException)
{
lblMessage.Text = GetDictionaryText("Unable to register");
}
}
}
我收到类型&System; System.Configuration.Provider.ProviderException'的异常。发生在Sitecore.Kernel.dll中但未在用户代码中处理。
请参见下面的屏幕截图:
Exception while assigning values/profile id to extranet\anonymous user
有人可以建议可能存在的问题以及如何向匿名用户分配详细信息吗?
答案 0 :(得分:0)
将此信息分配给匿名用户是一个坏主意,因为用户是通过所有匿名会话共享的。除非您使用的是实际用户(或虚拟用户),否则执行此操作的好方法是使用Sitecore联系人。可以找到更多信息here(和相关页面)。
归结为使用Tracker.Current.Contact
代替Sitecore.Context.User
。