2010-01-21 36 views
1

我在Visual Studio中開發了一個使用Sharepoint List來存儲數據的幫助臺應用程序。UpdateListItem方法和系統帳戶

我的問題是,當我使用UpdateListItems方法提交新記錄時,Sharepoint自動將「創建者」(作者)字段賦值爲「系統帳戶」,這可以防止觸發我用Sharepoint創建的工作流設計師。 我試圖通過添加到我的批處理人員ID強制創建字段;#人員用戶名

但它仍然會顯示「系統帳戶」!

任何想法!?

對不起我的英語不好:(

回答

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 

} 
+0

我必須使用microsoft.sharepoint命名空間,而不是Web服務,所以我必須做一些更改我的代碼,但這樣做了! ...謝謝你,你好! – nego 2010-01-22 09:38:04

0

選項1:「更新工作流」

我不會建議試圖改變創建領域相反,創建一個新的人 場(。在您的列表命名發佈者或某事),並填充與用戶的工作流程應該使用的,而不是創建由提交場

選項2:「更新代碼」

如果您的工作流程無法更新,那麼您必須更改代碼。您不需要使用服務帳戶進行提交,您需要使用當前用戶的憑證進行提交。這意味着他們需要對列表擁有正確的權限。我不確定你的代碼是否在web部分,所以我不能更具體。