我在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。
答案 0 :(得分:2)
好的,我明白了。我刚用过
System.Threading.Thread.CurrentPrincipal.Identity
而不是
WindowsIdentity.GetCurrent()
当我在本地预览报告时,这不起作用,
Thread.CurrentPrincipal.Identity.Name //returns an empty string when previewing locally
但在部署到服务器后它可以正常工作。