Как получить полное имя входа от People Picker с помощью объектной модели?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/12934

  •  16-10-2019
  •  | 
  •  

Вопрос

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

1#имя пользователя

У меня есть проблема с этим, потому что я ожидал полного имени пользователя, включая домен. Например:

1#myCompanyDomain Имя пользователя

Должен быть способ получить полное имя пользователя и домена с помощью объектной модели, но я не знаю как.

Это было полезно?

Решение

Я работаю со своим Люди контроль таким образом:

foreach (var loginName in peopleEditor.CommaSeparatedAccounts.Split(';',','))
{
    SPUser user = SPContext.Current.Web.EnsureUser(loginName);
    // user.LoginName is now returns "domain\login"
}

Этот код отлично работает для меня.

Обновлять:

Примечание 1: Обеспечить облегчение добавите пользователя на ваш сайт (спасибо, Иван Падабед за комментарий). В большинстве случаев это нормально, но лучше помнить об этом.

Заметка 2: Это решение в большинстве случаев наиболее предпочтительнее для меня, чем пугало. ResolvePrincipal. По крайней мере, потому что это доступно в песочнице, а Resulfincipal - нет.

Другие советы

Я считаю, что вы также можете использовать:

SPUtility.ResolvePrincipal(webApp, null, login, SPPrincipalType.User, SPPrincipalSource.All, false);

Тем не менее, это медленнее, чем предложения, использующие обеспечение USER, но вполне пользуется преимуществом, чтобы не добавлять пользователя на сайт, и немного более гибко, если вам нужны такие вещи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top