Как я могу получить профиль пользователя SharePoint через «Дружественное имя» с помощью веб-службы SP? - PullRequest
1 голос
/ 09 февраля 2011

Я получаю список имен из списка SharePoint в моей клиентской программе. Имена заполняются из средства выбора имен в SharePoint. В XML, возвращенном из запроса списка, список выглядит так:

"#10;#Some Name;#12;#Another Name;#15;#Yet AnotherName"

Моя программа должна получить имя учетной записи (или адрес электронной почты) каждого пользователя. Я могу использовать GetUserProfileByName("domain\\username"), но у меня нет имени учетной записи. Я не могу сделать что-то вроде GetUserProfileByName("Some Name"), потому что это должно быть имя учетной записи.

Число перед каждым именем является индексом или идентификатором, но я не могу использовать GetUserProfileByIndex(10), потому что мне приходится управлять своими собственными данными или иметь учетные данные администратора.

Так что в основном он предоставляет мне две важные части информации, но я не могу получить дополнительную информацию, используя их.

Ответы [ 2 ]

1 голос
/ 09 февраля 2011

Вы уверены, что число является индексом, я думаю, что это может быть ИД пользователя для семейства сайтов.И это тоже кажется странным списком пользователей, но в любом случае:

string result = "#10;#Some Name;#12;#Another Name;#15;#Yet AnotherName";
string[] users = result.Substring(1).Split(new string[2] { ";", "#" }, StringSplitOptions.RemoveEmptyEntries);
for (int j = 0; j < users.Length; j = j + 2) {
    using (ClientContext context = new ClientContext("http://yoursite")) {
        List list = context.Web.SiteUserInfoList;
        ListItem item = list.GetItemById(int.Parse(users[j]));
        context.Load(item, i => i.Id, i => i["Name"]);
        context.ExecuteQuery();
        object username = item["Name"];
    }
}
0 голосов
/ 09 февраля 2011

У меня работает очень грязное решение, но я хотел бы услышать о некоторых идеях для правильного / элегантного решения.

Сейчас я использую GetListItems в списке UserInfo исоздание словаря из ows_ImnName и ows_Name записей, затем синтаксический разбор строки из запроса списка в имена и использование их в качестве значений поиска.

Там имеет , чтобы быть лучшим способом.

...