Sitecore |无法通过代码隐藏设置extranet \ anonymous用户详细信息

时间:2017-01-06 11:50:24

标签: sitecore sitecore8

我们有一个订阅表单,其中显示了匿名用户的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

有人可以建议可能存在的问题以及如何向匿名用户分配详细信息吗?

1 个答案:

答案 0 :(得分:0)

将此信息分配给匿名用户是一个坏主意,因为用户是通过所有匿名会话共享的。除非您使用的是实际用户(或虚拟用户),否则执行此操作的好方法是使用Sitecore联系人。可以找到更多信息here(和相关页面)。

归结为使用Tracker.Current.Contact代替Sitecore.Context.User