Sharepoint客户端对象模型编辑作者和编辑器字段

本文关键字:编辑器 字段 客户端 对象模型 编辑 Sharepoint | 更新日期: 2023-09-27 18:03:48

我试图把当前用户登录在我的MVC 5应用程序(与windows身份验证)到一个新的ListItem的作者和编辑器字段。

我没有成功地将用户凭证传递给SharePoint客户端上下文,所以我尝试使用SharePoint客户端对象模型来编辑这两个字段

using SP = Microsoft.SharePoint.Client;
...
SP.User SPuser = context.Web.EnsureUser(Request.LogonUserIdentity.Name); 
//SP.User SPuser = context.Web.EnsureUser("mydomain''someuser"); //same result as above
context.Load(SPuser);
context.ExecuteQuery();
SP.FieldUserValue userValue = new SP.FieldUserValue();
userValue.LookupId = SPuser.Id;
SP.ListItem documentLi = documentFile.ListItemAllFields;
...
//We don't want the application pool identity here, but the current user
documentLi["Author"] = userValue;
documentLi["Editor"] = userValue;
documentLi.Update();
context.ExecuteQuery();

它在本地主机上工作得很好,但是当我在服务器上尝试时什么也没有发生:这两个字段保持了应用程序池的身份。

我错过了什么

Sharepoint客户端对象模型编辑作者和编辑器字段

我发现了问题所在:在localhost中,应用程序池标识是我的用户,它完全控制sharepoint列表,而不像IIS中的应用程序池标识(它只有贡献权限),一旦我将其提升为完全控制,它就会工作得很好。