2010-02-23 67 views
0

我使用下面的代碼哪個Windows帳戶用於將文件上傳到SharePoint文檔庫?

WindowsIdentity wIdb4 = WindowsIdentity.GetCurrent(); 
    string name = wIdb4.Name; 

在工作流中顯示哪些用戶帳戶被用來上傳文檔。當我在工作流程歷史記錄事件中寫入上述字符串時,即使我使用網站集管理員登錄,它也會始終返回NETWORK SERVICE。誰能告訴我這是爲什麼?

回答

1

嘗試使用:

SPContext.Current.Web.CurrentUser.Name 

編輯:

我想可能沒有在您的工作流程相關的SPContext。

他按照您的工作流程解決了什麼問題?

workflowProperties.OriginatorUser 
+0

將它比不同方式運行?如果是的話,爲什麼它會不同? – ria 2010-02-23 17:42:17

+0

是的。 WindowsIdentity.GetCurrent()將始終返回進程標識(即網絡服務) – zincorp 2010-02-23 18:12:04

+0

足夠奇怪...在我的開發機器上,我得到一個NullReference例外使用SPCOntext.Current ... 當我調試它說SPContext.Current爲空......你能告訴我爲什麼這樣嗎? – ria 2010-02-24 05:51:29

0

上述工作流將總是作爲一個服務帳戶(通常爲IIS應用程序池帳戶)

+0

實際上,應用程序池帳戶是名爲xyz \ myusername的用戶 其中xyz是我的域,myusername是Windows帳戶...仍然工作流將當前用戶顯示爲網絡服務 – ria 2010-02-23 17:34:08