SSRS WindowsIdentity.GetCurrent()给我NT AUTHORITY \ NETWORK SERVICE

时间:2010-06-22 17:15:28

标签: reporting-services reportingservices-2005

我在SSRS报告中有自定义代码,需要获取当前用户。 e.g。

Dim myPrincipal As New System.Security.Principal.WindowsPrincipal   
   (System.Security.Principal.WindowsIdentity.GetCurrent())

我原本期望GetCurrent()返回正在访问报告的用户的主体;但是,它给了我“NT AUTHORITY \ NETWORK SERVICE”的原则。有谁知道如何让ReportServer作为运行报告的用户运行?我检查了两个web.config,它们都指示Windows身份验证和Impersonate = True。

1 个答案:

答案 0 :(得分:2)

好的,我明白了。我刚用过

System.Threading.Thread.CurrentPrincipal.Identity 

而不是

WindowsIdentity.GetCurrent()

当我在本地预览报告时,这不起作用,

Thread.CurrentPrincipal.Identity.Name //returns an empty string when previewing locally

但在部署到服务器后它可以正常工作。