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

时间:2016-08-23 14:27:08

标签: c# sharepoint

我试图将当前用户登录我的MVC 5应用程序(使用Windows身份验证)放入新ListItem的Author和Editor字段中。

我没有成功将用户凭据传递到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();

它在localhost中工作正常,但在服务器上尝试时没有任何反应:这两个字段保留了应用程序池标识。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

我发现问题是什么:在localhost中,应用程序池标识是我的用户,它对共享点列表具有完全控制权,而不像IIS中的应用程序池标识(它只有贡献权限),一旦我用它提升它就可以正常工作完全控制。