在SharePoint客户端对象模型中使用电子邮件地址确保用户

Pag*_*P.T 2 sharepoint sharepoint-2013 csom

我需要在sharepoint 2013中更新FieldUserValue字段.我只获得了一个电子邮件地址数据.我不能使用EnsureUser,因为它只接受logonName.我使用FromUser方法,但它给我一个错误,上面写着"用户不存在或不是唯一的"

FieldUserValue user = FieldUserValue.FromUser(email);
Run Code Online (Sandbox Code Playgroud)

当我尝试使用我的电子邮件地址时,它工作,但当我在我的数据中使用电子邮件地址时,它会导致错误.我该如何解决这个问题?

Vad*_*hev 5

您可以使用Utility.ResolvePrincipal方法通过电子邮件地址解析用户,例如:

var result = Microsoft.SharePoint.Client.Utilities.Utility.ResolvePrincipal(ctx, ctx.Web, emailAddress,Microsoft.SharePoint.Client.Utilities.PrincipalType.User,Microsoft.SharePoint.Client.Utilities.PrincipalSource.All, null, true);
ctx.ExecuteQuery();
if (result != null)
{
    var user = ctx.Web.EnsureUser(result.Value.LoginName);
    ctx.Load(user);
    ctx.ExecuteQuery();    
} 
Run Code Online (Sandbox Code Playgroud)

参考

在SharePoint 2013中获取用户标识和属性