Web services Sharepoint解析主体功能

Web services Sharepoint解析主体功能,web-services,sharepoint,Web Services,Sharepoint,我试图以编程方式将一个用户添加到SharepointList中Type=user的字段中。因为我事先不知道用户在站点中的唯一ID,所以我使用ResolvePrincipals函数将用户添加到SPUserCollection中,如下所示: Dim managerDN() As String = {"some.user@email.com"} Dim principalInfo() As PrincipalInfo = people.ResolvePr

我试图以编程方式将一个用户添加到SharepointList中Type=user的字段中。因为我事先不知道用户在站点中的唯一ID,所以我使用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函数将根据自动将用户添加到站点用户集合中,并在此过程中创建一个唯一的、积极的UserInfoID。我不确定我的想法是否正确

我总是使用以下代码:

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是否返回null,或者在找不到用户时抛出错误,所以一定要先检查