UpdateListItem方法和系统帐户

时间:2010-01-21 14:18:18

标签: sharepoint

我在Visual Studio中开发了一个使用Sharepoint List来存储数据的Help Desk应用程序。

我的问题是,当我使用UpdateListItems方法提交新记录时,Sharepoint会自动将“创建者”(作者)字段分配为“系统帐户”,这可以防止我使用Sharepoint Designer创建的工作流的触发器。 我试图在提交期间通过添加到我的批次人员ID强制创建者字段; #person username

但它仍会显示“系统帐户”!!

任何想法!?

抱歉我的英语不好:(

2 个答案:

答案 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部件中,因此我不能更具体。