2010-06-02 4 views
0

웹 보고서 뷰어를 사용하여 SSRS 보고서를 볼 때 인증에 도움이 필요합니다.웹 ReportViewer 인증

IIS에서 "Windows 인증"만 설정하고 "익명 액세스"는 선택 취소하고 다른 항목은 디렉터리 보안 탭에서 확인합니다. 내 웹 사이트의 결과는 WindowsIdentity.GetCurrent()가 ASPNET 사용자와 Request.LogonUserIdentity를 로그인 한 사용자의 도메인 계정으로 반환한다는 것입니다. ReportViewer 컨트롤을 호스팅하는 페이지에서 프로그래밍 방식으로 Request.LogonUserIdentity를 가장 한 다음 모두를 설정합니다 보고서/서버 속성을 업데이트하고 ServerReport를 새로 고치면 "요청이 HTTP 상태 401 : 허가되지 않았습니다."가 반환됩니다. 오류 및 나는 Request.LogonUserIdentity가 보고서에 대한 액세스 권한을 100 % 확신합니다. 가장을 증명하기 위해 WindowsIdentity.GetCurrent()는 가장 (impersonation) 후 Request.LogonUserIdentity와 동일한 사용자를 반환하고 특정 사용자와 함께 데이터베이스를 쿼리해야 할 때 동일한 가장 (impersonation)을 사용합니다.

ReportViewer1에서 ServerReport 속성에 ImpersonationUser 속성이 있지만이 값을 설정할 수없고 찾을 수없는 것으로 나타났습니다.

누군가가 약간의 빛을 비추어 줄 수 있습니까? 나는 며칠 동안 이것을 작업 해왔다. ...

답변

1

왜 자신을 가장해야하는지 명확하지 않다. Windows 인증을 사용하고 익명 액세스를 비활성화 한 경우 ASP.NET에서 최종 사용자의 자격 증명을보고 서버로 전달하면됩니다. NTLM double-hop problem이다 (당신의보고 서버가 웹 서버와 다른 시스템에있는 경우)이 발생 될 수

<identity impersonate="true" /> 

또 다른 문제를 당신은 Kerberos를 구성해야 할 수 있습니다 : 당신의 web.config 파일에 <identity> 요소를 추가하십시오 여러 컴퓨터에서 자격 증명 위임을 지원할 수 있습니다.