2011-10-12 4 views
0

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

строка myItem = Convert.ToString (ListItem.properties [ "Аудитория"])

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

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

ответ

0

Не используйте Properties из ListItem, но сами поля.

В поле «Целевая аудитория» у вас есть какие-то GUIDs хранятся в виде строк, это вам нужно получить так:

//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().