SSRS WindowsIdentity.GetCurrent () дает мне NT AUTHORITY \ NETWORK SERVICE - PullRequest
0 голосов
/ 22 июня 2010

У меня есть собственный код внутри отчета SSRS, который должен получить текущий пользователь. например,

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 Ответ

2 голосов
/ 22 июня 2010

Хорошо, я понял это. Я просто использовал

System.Threading.Thread.CurrentPrincipal.Identity 

вместо

WindowsIdentity.GetCurrent()

Это не работает, когда я предварительно просматриваю отчет, т.е.

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

но работает нормально после развертывания на сервере.

...