У меня есть поле в профиле пользователя, которое соответствует идентификатору в другой системе. Я хочу установить это, когда пользователь посещает ссылку активации. После регистрации пользователя в другой системе я добавляю роль и устанавливаю ее утверждение членства в true. Я получаю сообщение об ошибке, заявляя, что я не могу установить свойство анонимного пользователя, поэтому я переместился туда, где я назначил идентификатор после роли/активации, но у меня все еще такая же ошибка.Sitecore asp.net Редактирование пользовательских свойств профиля пользователя
private bool SetCustomId(string username, Guid id)
{
var userProfile = ((User)User.FromName(username, AccountType.User)).Profile;
userProfile.SetCustomProperty("MyIdField", id.ToString());
userProfile.Save();//error thrown here
}
Профиль пользователя является то, что я хотел бы ожидать, и когда я переместил его после того, как кусок, который назначен пользователю роль, они играют роль я ожидал их.
Вот фактическое исключение: This property cannot be set for anonymous users.
Хмм хорошо. Это имеет смысл, основываясь исключительно на сообщении об ошибке. Любая идея, почему я не мог установить какие-либо свойства после предоставления пользователю роли/включения? Я предполагаю, что аутентифицировано так же, как и разрешено, что может быть неправильным. Возможно, аутентифицированные средства онлайн/в настоящее время вошли в систему или что-то в этом направлении. – Teeknow
Да, аутентифицированное средство вошло в систему. Если флаг пользователя IsAuthenticated не установлен для пользователя, основной поставщик ролей предполагает, что пользователь является анонимным. По умолчанию свойства профиля нельзя установить для анонимных пользователей. –