Как получить целевую группу безопасности для элемента списка SharePoint?

Я разрабатываю веб-часть на C#, которая читает содержимое списка SharePoint. Я могу получить значения во всех нужных мне полях, кроме поля "Целевая аудитория" (которое использует группы безопасности AD). Я пробовал различные способы доступа к этому, например,

string myItem = Convert.ToString(ListItem.properties["Audience"])

но все, что я получаю, равно нулю. Я вижу, что целевая группа была сохранена в поле для элемента при редактировании элемента в SharePoint.

Как я могу получить содержимое этого поля, используя код?

1 ответ

Решение

Попробуйте не использовать Properties из ListItem, но сами поля.

В поле "Целевая аудитория" у вас есть несколько идентификаторов GUID, которые хранятся в виде строк, которые вы должны получить следующим образом:

//use the FieldId enumeration for system fields
string audienceID = item[FieldId.AudienceTargeting] as string;
string newID = audienceID.Remove(36); //retrieve just the first guid
Guid audienceGuid = new Guid(newID);

AudienceManager audienceManager= new AudienceManager(SPContext.Current.Site);
Audience audience = audienceManager.GetAudience(guid);

после этого вы можете посмотреть на audience.GetMembership(),

Другие вопросы по тегам