2010-02-23 41 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

相关问题