Ich habe eine benutzerdefinierte Assembly für mein SSRS-Projekt erstellt.
Die benutzerdefinierte Assembly hat 2 Funktionen, IsInGroup
und MyTest
:
1) Die Basisfunktion MyTest
, die einen String 'Hello World' zurückgibt, funktioniert einwandfrei mit dem Ausdruck =SSRS_Custom_Functions.Class1.MyTest()
2) Die Funktion IsInGroup
, die einen booleschen Wert zurückgibt, funktioniert nicht. Dies verwendet den Namespace System.Security.Principal
, um zu überprüfen, ob der an die Funktion übergebene Benutzername in der an die Funktion übergebenen Gruppe vorhanden ist. Beim Versuch, den Ausdruck mithilfe des Ausdrucks =SSRS_Custom_Functions.Class1.IsInGroup(User.User1, "MyGroupName")
aufzurufen, wird der Bericht mit der folgenden Fehlermeldung angezeigt:
Anforderung für die Berechtigung vom Typ System.Security fehlgeschlagen
Ich habe die Konfigurationsdateien rssrvpolicy.config
im ReportingServices-Dateipfad und RSPreviewPolicy.config
im VisualStudio-Dateipfad gemäß Microsoft geändert KB920769 .
Ich habe eine CodeGroup
hinzugefügt, die FullTrust
zu meiner benutzerdefinierten Assembly gibt.
Dem Element der Richtlinienebene wurde Folgendes hinzugefügt:
%Vor%Ich bekomme immer noch dieselbe Fehlermeldung wie oben.
In Ihrer Assembly müssen Sie zuerst das SecurityPermission-Objekt bestätigen, bevor Sie es verwenden.
%Vor% In der Datei AssemblyInfo müssen Sie namespace System.Security
und
Unterzeichnen Sie die Assembly mit Zertifikat und stellen Sie sie auch in GAC der Maschine bereit.
Tags und Links .net c# reporting-services ssrs-2008 system.security