Итак, я уже давно работаю в Sitecore и для отправки электронной почты через e-mailcampaignmanager я создал модуль, который должен загружать определенные элементы на основе полей (заполненных пользователем интересов) в свойствах пользовательского профиля.Получить пользовательские свойства профиля Sitecore
Получение свойств из Sitecore.Context.User.Profile
отлично работает (так что, когда я вошел в систему как пользователь, он работает), но когда я пытаюсь получить его как var currentUser = Sitecore.Security.Accounts.User.FromName(Request["ec_recipient"], true);
(или замена Request [ «ec_recipient»] с существующим именем пользователя), все мои пользовательские свойства не имеют значения. Я пробовал currentUser.Profile.Reload()
и currentUser.Profile.Initialize("username", true)
, но ни один из них не работает.
UPDATE
Я забыл упомянуть, что я добавил перегрузку для UserProfile, как показано ниже:
public class UserProfile : Sitecore.Security.UserProfile
{
/// <summary>
/// Gets or sets the interests.
/// </summary>
/// <value>
/// The interests.
/// </value>
public IList<ID> Interests
{
get
{
return string.IsNullOrWhiteSpace(this.interests)
? new List<ID>()
: this.interests
.Split(',')
.Where(ID.IsID)
.Select(g => new ID(g))
.ToList();
}
set
{
this.interests= string.Join(",", value.Select(g => g.ToString()));
}
}
/// <summary>
/// Gets or sets backingfield for the interests.
/// </summary>
/// <value>
/// The sectors.
/// </value>
private string interests
{
get
{
return this.GetCustomProperty("Interests");
}
set
{
this.SetCustomProperty("Interests", value);
}
}
}
Кроме того, я попробовал следующее (как уже упоминалось в комментариях, с еще пустая строка как результат)
var interests = new List<ID>();
using (new SecurityEnabler())
{
var currentUser = Sitecore.Security.Accounts.User.FromName(username, true);
using (new Sitecore.Security.Accounts.UserSwitcher(currentUser))
{
var userprofile = Sitecore.Context.User.Profile as UserProfile;
interests.AddRange(userprofile.Interests);
}
}
профиль пользовательского пользователя определяется в базе данных ядра в:/Sitecore/шаблоны/система/Безопасность/пользовательский пользователя Любые мысли/помощь по этой теме были бы весьма признательны.
Спасибо за быстрый ответ. Я попробовал это, но это не сработало для меня. Я обновил вопрос, потому что понял, что он не завершен. – Ronald