2008-08-28 5 views
13

Utworzono zespół i wymieniono go w moim raporcie usług Reporting Services. Przetestowałem raport lokalnie (prace), a następnie przesłałem raport do serwera raportów (nie działa).Jak rozwiązać wyjątek System.Security.SecurityException za pomocą niestandardowego kodu w usłudze SSRS?

Oto błąd, który jest zgłaszany przez niestandardowy kod, który napisałem.

System.Security.SecurityException: Wniosek o pozwolenie typu 'System.Security.Permissions.SecurityPermission, mscorlib, Version = 2.0.0.0, Culture = neutral , TokenKluczaPublicznego = b77a5c561934e089' zawiodły . w System.Security.CodeAccessSecurityEngine.CheckNReturnSO (PermissionToken permToken, CodeAccessPermission popytu StackCrawlMark & stackMark, Int32 unrestrictedOverride, Int32 utworzyć) w System.Security.CodeAccessSecurityEngine.Assert (CodeAccessPermission nasadki, StackCrawlMark & stackMark) w System.Security.CodeAccessPermission.Assert() w [snipped Method Name] w ReportExprHostImpl.CustomCodeProxy [Nazwa] snipped Metoda działania, które nie powiodło się. Popyt typu pierwszego pozwoleniem że nie było: System.Securi ty.Permissions.SecurityPermission Strefa zespołu, że nie udało było: mój_komputer

Ten projekt jest coś odziedziczyłem, i nie jestem zaznajomiony z nim. Chociaż mam kod (teraz), więc mogę przynajmniej praca z nim :)

Wierzę, że kod, który zawodzi to:

Dim fio As System.Security.Permissions.FileIOPermission = New System.Security.Permissions.FileIOPermission(Security.Permissions.PermissionState.Unrestricted) 
    fio.Assert() 

Jednak tego rodzaju rzeczy jest zbyt wszędzie :

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 

Widzę którekolwiek z tych rzeczy są rzeczy, które Reporting Services nie pomieści po wyjęciu z pudełka.

+0

To może pomóc:

Odpowiedz

8

W ten sposób udało mi się rozwiązać ten problem:

  • silnie podpisać zestawu niestandardowego w pytaniu
  • zmodyfikować plik rssrvpolicy.config dodać uprawnienia do montażu

        <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> 
    

Notatka poboczna: oto świetny sposób na usunięcie blobu klucza publicznego z zestawu VS trick for obtaining the public key token and blob of a signed assembly.

+0

jakikolwiek przykładowy skrypt ps1, który modyfikuje rssrvpolicy.config? dzięki – Kiquenet

18
<system.web> 

<trust level="Full"/> 

</system.web> 

spróbować tego w web.config

Powiązane problemy