를 해결하는 방법은 무엇입니까 시스템입니다.보안입니다.SecurityException 사용자 지정 코드에 SSRS?
-
09-06-2019 - |
문제
내가 만든 어셈블리하고 참조에서 그것을 내 Reporting Services 보고서입니다.나는 테스트 보고서를 로컬로(작동),그리고 난 후에 업로드 된 보고서를 보고 서버(작동하지 않).
여기에 오류가 발생하여 사용자 지정 코드를 작성했습니다.
시스템입니다.보안입니다.SecurityException:의 권한을 요청 유형 '시스템이다.보안입니다.권한이 있습니다.SecurityPermission, mscorlib Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 지 못했습니다.에 시스템입니다.보안입니다.CodeAccessSecurityEngine.CheckNReturnSO(PermissionToken permToken,클래스가 올바르 수요,StackCrawlMark&stackMark, Int32unrestrictedOverride,Int32 성)에 시스템입니다.보안입니다.CodeAccessSecurityEngine.Assert(클래스가 올바르 모자,StackCrawlMark&stackMark)에 시스템입니다.보안입니다.클래스가 올바르게.Assert() 에서[냈다 메서드 이름이]에 ReportExprHostImpl.CustomCodeProxy.[냈다 메서드 이름을 작업하는지 못했었:수요 유형의 첫 번째 허가는 실패했:시스템입니다.보안입니다.권한이 있습니다.SecurityPermission 지역 어셈블리의 실패 었:MyComputer
이 프로젝트가 뭔가 나는 상속,그리고 나는 속속들이 잘 알고 있습니다.비록 나의 코드(지금),그래서 나는 적어도 그것으로 작업:)
내가 믿는 코드는 실패입니다:
Dim fio As System.Security.Permissions.FileIOPermission = New System.Security.Permissions.FileIOPermission(Security.Permissions.PermissionState.Unrestricted)
fio.Assert()
그러나,이러한 종류의 물건은 어디에나무:
Private Declare Function CryptHashData Lib "advapi32.dll" (ByVal hhash As Integer, ByVal pbData As String, ByVal dwDataLen As Integer, ByVal dwFlags As Integer) As Integer
내가 볼 수있는 하나의 이러한 것들 Reporting Services 을 수용하지 않을 것입니다.
해결책 2
이렇게 문제를 해결할 수있었습니다.
- 문제의 맞춤 어셈블리에 강력하게 서명
-
rssrvpolicy.config 파일을 수정하여 어셈블리에 대한 권한을 추가합니다.
<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Name="Test" Description="This code group grants the Test code full trust. "> <IMembershipCondition class="StrongNameMembershipCondition" version="1" PublicKeyBlob="0024000004800000940100000602000000240000575341310004000001000100ab4b135615ca6dfd586aa0c5807b3e07fa7a02b3f376c131e0442607de792a346e64710e82c833b42c672680732f16193ba90b2819a77fa22ac6d41559724b9c253358614c270c651fad5afe9a0f8cbd1e5e79f35e0f04cb3e3b020162ac86f633cf0d205263280e3400d1a5b5781bf6bd12f97917dcdde3c8d03ee61ccba2c0" /> </CodeGroup>
참고 : 다음은 어셈블리의 공개 키 blob을 가져 오는 좋은 방법입니다. 서명 된 어셈블리의 공개 키 토큰 및 blob을 얻기위한 VS 트릭 .
다른 팁
web.config에서 시도
관리자 모드에서 서비스 실행
저에게 솔루션은 rssrvpolicy.config
의 위 줄을 "None"
에서 "FullTrust"
로 변경했습니다.