Функция Sharepoint ResolvePrincipals - PullRequest
0 голосов
/ 31 августа 2010

Я пытаюсь добавить пользователя программным способом в поле Type = "User" в SharepointList.Поскольку я заранее не знаю уникального идентификатора пользователя на сайте, я использую функцию ResolvePrincipals для добавления пользователя в коллекцию SPUserCollection следующим образом:

            Dim managerDN() As String = {"some.user@email.com"}
            Dim principalInfo() As PrincipalInfo = people.ResolvePrincipals(managerDN, SPPrincipalType.User, True)
            Console.WriteLine(principalInfo(0).UserInfoID)

Проблема в том, что когда я смотрю на UserInfoID,что я и ищу, я возвращаюсь -1.Я предполагал, что функция ResolvePrincipals добавит пользователя в семейство пользователей сайта автоматически (согласно документации MSDN ) и создаст уникальный положительный идентификатор UserInfoID в процессе.Я не уверен, что у меня есть правильная идея или нет

1 Ответ

0 голосов
/ 01 сентября 2010

Я всегда использую этот код:

SPUser user = web.EnsureUser("login");
SPFieldUserValue value = new SPFieldUserValue(web, user.ID, user.LoginName);

Если у вас есть только адрес электронной почты, вы можете использовать это:

SPUser user = web.AllUsers.GetByEmail("email");

if (user != null)
{
    SPFieldUserValue value = new SPFieldUserValue(web, user.ID, user.LoginName);
}

Я не совсем уверен, возвращает ли GetByEmail нольили выдает ошибку, если пользователь не может быть найден, поэтому убедитесь, что проверили это сначала!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...