2010-03-23 2 views
4

Winform 응용 프로그램의 로컬 모드 (RDLC 파일)에 사용할 보고서를 디자인하고 있습니다. 나는 (표현식으로) 보고서 내부에서 사용하려는 몇 가지 기능을 가지고 정적 클래스와 사용자 지정 어셈블리가 있습니다.보고 서비스 : 로컬 (RDLC) 보고서와 함께 사용자 지정 어셈블리 사용

RDL 보고서에서이 작업을 수행하는 데 여러 가지 도움을 얻었지만 내 RDLC 보고서의 사용 권한 문제가 발생합니다.

런타임에 다음 오류가 발생합니다. "보고서가 신뢰할 수있는 어셈블리가 아닌 코드 모듈 (my module)을 참조합니다".

이 코드 보안 문제가 있음을 알고 있습니다. 그러나 문제를 해결하기 위해 무엇을해야할지 모르겠습니다. 온라인에서 본 문서는 RDL 보고서를 대상으로하며 SQL Server 관련 정책 파일을 편집하도록 지시합니다. RDLC를 사용하고 있으므로 관련된 SQL Server가 없습니다. 적절한 권한을 얻기 위해서는 무엇을해야합니까?

답변

5

ReportViewer.LocalReport PropertyAddTrustedCodeModuleInCurrentAppDomain 방법 (reportViewer.LocalReport.AddTrustedCodeModuleInCurrentAppDomain ("어셈블리")를) 사용해보십시오.

또한 어셈블리에 AllowPartiallyTrustedCallers 특성을 사용해야합니다 ([assembly : AllowPartiallyTrustedCallers]).

+1

그건 속임수 였어! AllowPartiallyTrustedCallers가 있었지만 AddTrustedCodeModuleInCurrentAppDomain에 대한 호출을 놓쳤습니다. 덧붙여 말하면,이 메소드는 .Net 4.0에서 사용되지 않으며 새로운 방법이 있습니다. 도와 주셔서 감사합니다! – JMarsch

2

AddTrustedCodeModuleInCurrentAppDomain 메서드는 .Net 4.0에서는 더 이상 사용되지 않습니다. Visual Studio 2010에서는이 메서드 호출을 해제합니다. 그러나 ReportViewer 클래스 (reportViewer.LocalReport.AddFullTrustModuleInSandboxAppDomain (myAssemblyStrongName))의 LocalReport 속성에는 AddFullTrustModuleInSandboxAppDomain 메서드가 있습니다. 어셈블리의 강력한 이름이 필요합니다. 내 응용 프로그램은 Visual Studio에서 잘 실행되지만 폴더 "bin"에서 exe-file을 수동으로 실행할 때 "신뢰할 수있는 어셈블리가 아닌 코드 모듈 (내 모듈)을 참조하는 보고서"오류가 발생합니다. 그것은 무엇 일 수 있는가?

+0

http://devcoma.blogspot.nl/2010_05_01_archive.html – StefanHa