У меня есть некоторые определенные для пользователя данные, которые я должен хранить в SharePoint и сделать доступным для пользователя через пользовательский webparts. Скажем, список любимых URL. Каков был бы самый простой способ хранить эту информацию?
Походит прочитайте руководство мне, но я, вероятно, задаю Google неправильные вопросы.
[Обновление]
Мы в конечном счете хранили эту информацию в простом списке, в фиксированном месте, с полем Person для фильтрации на. Возможно, простое решение действительно, но технически я думаю, что отмеченный ответ ниже более хорош.
Если вы хотите сделать их многократно используемыми в семействе сайтов для каждого пользователя, вы можете добавить поля в список информации о пользователях. Вы можете добавить приемник функций в свое решение веб-частей, которое может создать этот столбец, или проверить, существует ли этот столбец в списке сведений о пользователе, чтобы убедиться, что этот столбец существует.
Список сведений о пользователях - это стандартный список SharePoint, который SharePoint использует для хранения информации о пользователях. Чтобы получить доступ к списку информации о пользователях, вы можете перейти в корневую сеть семейства сайтов и использовать свойство SiteUserInfoList
Напр.
SPList userInformationlist = SPContext.Current.Site.RootWeb.SiteUserInfoList;
//Or
SPWeb web = SPContext.Current.Site.RootWeb;
SPList userInformationlist = web.SiteUserInfoList;
Чтобы получить доступ к элементу списка пользователей, вы можете использовать идентификатор пользователя, чтобы получить элемент списка обратно из списка информации о пользователях
Напр.
SPListItem currentUserItem = userInformationlist.GetItemById(web.CurrentUser.ID);
Если вы используете MOSS, вы можете сохранить эту информацию в профилях пользователей и сделать ее доступной для всех семейств сайтов. Для этого не нужно включать личные сайты. Для доступа к нему вам нужно будет использовать классы профиля пользователя.
Это очень хороший вопрос.
Хотя у меня нет точного ответа, вот некоторые вещи, которые вы можете рассмотреть:
Сохраните данные в куки-файлах браузера, если это возможно.
Хранить в корневом веб-сайте семейства веб-сайтов в Свойствах, с ключом идентификатора пользователя для входа. Вы можете захотеть повысить уровень при чтении / записи свойств на тот случай, если у пользователя есть доступ к веб-сайту, но не к корневому веб-сайту.
Я бы выбрал свойства профилей пользователей. Вы не хотите хранить информацию в корневой сети, поскольку это не информация о корневой сети. Ваш пример с избранными URL-адресами, каждый пользователь имеет коллекцию "быстрых ссылок" в своем профиле. Идеальное место для хранения урлов каждого пользователя. :)
Создайте веб-часть, которая читает / записывает пользовательскую базу данных, и вы сможете гибко использовать веб-часть в коллекциях SiteCollections, WebApps или даже в отдельных фермах.
Это было реализовано там, где я работаю, и имело большой успех. Нам нужен был способ предоставить нашим конечным пользователям большой выбор важных, часто используемых ссылок. Конечные пользователи имеют возможность отображать ссылки, которые полезны для их конкретной должности, и иметь веб-часть, которую можно разместить где угодно, чтобы ссылаться на те ссылки, которые для них важны. У вас также есть возможность для «администратора» перейти к настраиваемой базе данных и обновить любые URL-адреса, которые могут измениться, без какого-либо воздействия на конечного пользователя или его неработающей ссылки.