我在Visual Studio中开发了一个使用Sharepoint List来存储数据的Help Desk应用程序。
我的问题是,当我使用UpdateListItems方法提交新记录时,Sharepoint会自动将“创建者”(作者)字段分配为“系统帐户”,这可以防止我使用Sharepoint Designer创建的工作流的触发器。 我试图在提交期间通过添加到我的批次人员ID强制创建者字段; #person username
但它仍会显示“系统帐户”!!
任何想法!?
抱歉我的英语不好:(答案 0 :(得分:1)
您是否考虑过使用模拟来更新列表项?
您需要网站上具有您可以模拟的正确访问权限的用户。查看在SPUserToken中传递的SPSite构造函数。
SPUserToken token = targetWeb.AllUsers["BobTheImpersonationAccount"].UserToken;
using(SPSite impersonatedSite = new SPSite("http://siteurl", token))
{
//Anything accessed through impersonatedSite and its child objects are now executing under the guise of BobTheImpersonationAccount
}
答案 1 :(得分:0)
选项1:“更新工作流程”
我不建议您尝试更改“创建者”字段。相反,创建一个新的人 列表中的字段(名为提交者或其他内容),并与用户填充该字段。工作流程应使用“提交者”字段而不是“创建者”。
选项2:“更新代码”
如果您的工作流程无法更新,那么您将不得不更改代码。您需要使用当前用户的凭据提交,而不是使用服务帐户提交。这意味着他们需要拥有对列表的正确权限。我不确定您的代码是否在Web部件中,因此我不能更具体。