Как получить владельца группы по CSOM - PullRequest
0 голосов
/ 30 апреля 2019

Я работаю с Sharepoint Online и CSOM, и мне нужно получить владельца конкретная группа.

Я попытался загрузить данные из ClientContext и получил исключение с сообщением «неизвестная ошибка».

Вот код, который я пробовал.

MC.ClientContext context = new SPClient.ClientContext("sit url");
MC.Group group = context.Web.SiteGroups.GetById("group id");
context.Load(group, x => x.Owner);
await context.ExecuteQueryAsync();

Какой правильный способ получения необходимой мне информации?

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Я решил эту проблему довольно странным способом.Код выглядит примерно так:

ClientContext context = new SPClient.ClientContext("sit url");
Group group = context.Web.SiteGroups.GetById("group id");
context.Load(group, x => x.Owner.PrincipalType,  x => x.Owner.LoginName);
await context.ExecuteQueryAsync();
context.Load(group.Owner);
await context.ExecuteQueryAsync();

Мне нужно дважды вызвать метод ExecuteQuery, чтобы получить объект владельца.Я не знаю почему.Но это работает.

0 голосов
/ 30 апреля 2019

Вы можете использовать GroupCollection.GetByName или GetById , чтобы извлечь существующую группу, а затем получить владельца группы.

using (var context = new ClientContext("sit url"))
{
    context.Credentials = credentials;

    var groupOwner = context.Web.SiteGroups.GetByName("GroupName"); 
    ctx.ExecuteQuery();     
}
...