Определение, является ли введенное значение пользователем или группой - объектная модель на стороне клиента
Я поэкспериментирую с объектной моделью на стороне клиента и приложениями для SharePoint Online. Я могу получить информацию из поля "Персона и группы" с помощью объекта FieldUserValue, однако как я могу из этого определить, является ли введенное значение просто пользователем или группой SharePoint?
Насколько я могу судить, FieldUserValue имеет только LookupId и LookupValue в качестве своих свойств, которые не указывают, является ли она группой или нет. Неправильно ли я поступил по этому поводу, и есть ли гораздо лучший способ опроса поля и проверки, является ли значение пользователем группы SharePoint?
Спасибо
1 ответ
Вы можете определить, является ли значение поля пользователя User
или же Group
получая тип содержимого элемента списка в User Information List
:
public static string GetUserFieldType(ClientContext ctx,FieldUserValue value)
{
var userInfoList = ctx.Site.RootWeb.SiteUserInfoList;
var userInfo = userInfoList.GetItemById(value.LookupId);
ctx.Load(userInfo,i => i.ContentType);
ctx.ExecuteQuery();
return userInfo.ContentType.Name;
}
использование
Предположим, что список содержит однозначное поле пользователя, а затем:
using (var ctx = new ClientContext(webUrl))
{
ctx.Credentials = CreateSPOCredentials(userName, password);
var list = ctx.Web.Lists.GetByTitle(listTitle);
var listItem = list.GetItemById(itemId);
ctx.Load(listItem);
ctx.ExecuteQuery();
var userVal = listItem[fieldName] as FieldUserValue;
var type = GetUserFieldType(ctx,userVal);
var isUser = type == "Person";
var isGroup = type == "SharePointGroup";
}