我需要在sharepoint 2013中更新FieldUserValue字段。我只会获得一个电子邮件地址数据。我不能使用EnsureUser,因为它只接受logonName。我使用FromUser方法,但它给我一个错误,上面写着“用户不存在或不是唯一的”
FieldUserValue user = FieldUserValue.FromUser(email);
当我尝试使用我的电子邮件地址时,它有效,但当我在我的数据中使用电子邮件地址时,会导致错误。我该如何解决这个问题?
答案 0 :(得分:5)
您可以使用Utility.ResolvePrincipal method通过电子邮件地址解析用户,例如:
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();
}
<强>参考强>