2008-09-26 2 views
3

사용자 지정 어셈블리를 성공적으로 추가했으며 AddTrustedCodeModuleInCurrentAppDomain을 사용하여 보고서에 추가했습니다. 현재 appdomain에서 보고서를 실행 중입니다.Visual Studio 2008 보고서의 사용 권한

SQL에 액세스하려고하면보고 서비스 System.Data.SqlClient.SqlClientPermission failed. 위와 같이 신뢰할 수있는 어셈블리에 System.Data을 추가하려고했지만 도움이되지 않습니다.

이 권한이 있는지 확인하려면 어떻게합니까?

답변

1

귀하의 로그인 자격 증명이 손실되는 것과 같은 오류가 발생했습니다. 어떤 종류의 허가를 사용하고 있습니까?

Windows 인증을 사용하는 경우 "사용자"가 손실 될 수 있습니다. 현재 appdomain에서 호출하는 것처럼 들리지는 않습니다. 연결 문자열을 변경하여 사용자 이름과 암호를 지정할 수 있습니다. 디버깅에 도움이 될만한 것이 없다면.

행운을 빈다.

1

행운이 있나요?

개체를 데이터 원본으로 사용하여 Visual Studio 2008의 로컬 모드에서 ReportViewer 컨트롤을 사용하고 있습니다. 내 수업은 내 데이터베이스의 데이터 테이블에 매핑됩니다. 객체에서 필요에 따라 관련 객체를로드합니다. 따라서 속성을 사용하려고 시도 할 때까지 참조가 null로 유지되고 데이터베이스에서 자동으로로드하려고 시도합니다. 클래스는 System.Data.SqlClient 네임 스페이스를 사용합니다.

Windows Forms 응용 프로그램의 개체와 상호 작용할 때 모든 것이 예상대로 작동합니다. 그러나 개체를 보고서 데이터 원본으로 사용하도록 전달하고 관련 개체를 자동으로로드하려고하면 오류가 발생합니다. 코드는 SqlConnection 개체를 생성하고 나는 그것을 GetCommand()를 호출 할 때, 다음과 같은 예외가 발생합니다 : 나는 오류 검색을 시도했습니다

[System.Security.SecurityException] { 
"Request for the permission of type 'System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed." 
} System.Security.SecurityException 

만 표시 모든 결과가 실행 CLR 어셈블리를위한 SQL Server 또는 ASP.Net에서. 나는도록 SqlConnection 개체를 만들기 전에 (검색 결과에 제안) 내 코드에 다음 호출을 추가하는 시도했지만, 그것은 분명히 아무 짓도 안 했어요 : 나는 해결책을 발견했습니다

System.Data.SqlClient.SqlClientPermission(System.Security.Permissions.PermissionState.Unrestricted).Assert(); 
1

. 실행 중에 사용하기 위해 LocalReport에 어셈블리를 실행하는 (또는 충분한 권한을 가진) System.Security.Policy.Evidence를 지정합니다.

reportViewer.LocalReport.ExecuteReportInCurrentAppDomain(System.Reflection.Assembly.GetExecutingAssembly().Evidence);