Создание секции профиля пользователя программно
-
16-10-2019 - |
Вопрос
Я пытаюсь создать новый раздел профиля пользователя программно, но без успеха. Проблема в Тип свойства класса недвижимости.
Когда я указываю значение, такое как «раздел» для этого, я получаю исключение Тип данных недоступен для раздела. Анкет Когда я не указываю значение, я получаю исключение UserProfilePropertySettings объект должен иметь значение для «типа».
Вот код:
var userProfileConfigManager = new UserProfileConfigManager(ServerContext.GetContext(site));
var propertyCollection = userProfileConfigManager.GetPropertiesWithSection();
var newProperty = propertyCollection.Create(true);
newProperty.Name = "NewSection";
newProperty.DisplayName = "NewSection";
newProperty.Type = "section"; // or not set
newProperty.IsUserEditable = false;
newProperty.Length = 0;
newProperty.DefaultPrivacy = 0;
newProperty.PrivacyPolicy = 0;
newProperty.IsSearchable = false;
newProperty.IsVisibleOnEditor = false;
newProperty.IsVisibleOnViewer = false;
newProperty.Separator = MultiValueSeparator.Unknown;
newProperty.Commit();
Любые идеи?
Решение
Моя ошибка - второе исключение было моей собственной из -за чрезмерной проверки ввода! Однако код также был неверным. Он должен читать:
var userProfileConfigManager = new UserProfileConfigManager(ServerContext.GetContext(site));
var propertyCollection = userProfileConfigManager.GetPropertiesWithSection();
var newProperty = propertyCollection.Create(true);
newProperty.Name = "NewSection";
newProperty.DisplayName = "NewSection";
newProperty.Commit();
Другие советы
Также хорошая идея установить порядок раздела:
// order being the absolute position you want to place section in property list
propertyCollection.SetDisplayOrderBySectionName(newProperty.Name,order);
propertyCollection.CommitDisplayOrder();
Обычно именно поэтому я делаю это программно в первую очередь, поэтому мне не нужно щелкать вверх/вниз 1000 раз в списке сопоставления свойств профиля пользователя в SSP :-)-Anders Rask 0 Secs назад
HTH Anders Rask