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

Sitecore | Unable to set extranet\anonymous user details through code behind

我们有一个为匿名用户显示的包含 3 个字段(电子邮件、Phone 号码、兴趣)的订阅表单。当我们点击订阅时,我们需要将这些详细信息保存给 extranet\anonymous 个用户。

表格看起来像 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.Configuration.Provider.ProviderException' 类型的异常发生在 Sitecore.Kernel.dll 但未在用户代码中处理。

请参阅下面的屏幕截图以了解异常情况:

Exception while assigning values/profile id to extranet\anonymous user

有人可以建议可能是什么问题以及如何将详细信息分配给匿名用户吗?

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

归结为使用 Tracker.Current.Contact 而不是 Sitecore.Context.User