Windows или встроенная проверка подлинности означает, что пользователь идентифицируется с помощью учетных данных Windows (или токена), но это не означает, что запрос выполняется под этим пользователем.ASP.NET во время выполнения выполнит запрос под удостоверением рабочего процесса (пула приложений), если вы не настроите его для олицетворения какой-либо другой идентичности.
Поэтому, когда вы обращаетесь к сайту с помощью сервера разработки, сервер работает подваша идентификация и, следовательно, доступ к SSRS и Sql Server осуществляется под вашей идентификацией и работает.
Когда вы загружаете свой сайт под IIS, ASP.NET-запрос будет выполняться под любым идентификатором, настроенным для пула приложений.Обычно это удостоверение является локальным пользователем, и, следовательно, доступ к сетевым ресурсам, таким как SSRS или Sql Server, будет запрещен.При добавлении <identity impersonate="true" username="your name" ../>
ASP.NET будет выполнять запросы под вашей идентификацией, и это должно работать как для SSRS, так и для Sql Server.
Любопытный случай здесь - <identity impersonate="true" />
- при этом параметре ASP.NET будет выдавать себя за аутентифицированную идентификацию Windows.Однако для правильной работы необходимо настроить IIS и ASP.NET на встроенную проверку подлинности и запретить анонимный доступ (как в ASP.NET, так и в IIS).Невыполнение этого требования может привести к не аутентификации личности текущего пользователя, и запрос будет выполняться под идентификатором анонимного пользователя (как настроено в IIS).Если вы отметили встроенную аутентификацию в IIS, но не в ASP.NET, то идентификация не будет передана в запрос ASP.NET.Вам нужно проверить свою среду, чтобы увидеть, с каким именно сценарием вы столкнулись, но в конечном итоге ваш запрос ASP.NET выполнялся с учетными данными, которые имеют доступ к SQL Server, но не к SSRS.