LocalReport.ExecuteReportInCurrentAppDomain-Methode
Hinweis: Diese API ist veraltet.
Bewirkt, dass Verarbeitungserweiterungen und -ausdrücke des Berichts im aktuellen AppDomain-Objekt ausgeführt werden.
Namespace: Microsoft.Reporting.WinForms
Assembly: Microsoft.ReportViewer.WinForms (in Microsoft.ReportViewer.WinForms.dll)
Syntax
'Declaration
<ObsoleteAttribute("This method requires Code Access Security policy, which is deprecated. For more information please go to https://go.microsoft.com/fwlink/?LinkId=160787.")> _
Public Sub ExecuteReportInCurrentAppDomain ( _
reportEvidence As Evidence _
)
'Usage
Dim instance As LocalReport
Dim reportEvidence As Evidence
instance.ExecuteReportInCurrentAppDomain(reportEvidence)
[ObsoleteAttribute("This method requires Code Access Security policy, which is deprecated. For more information please go to https://go.microsoft.com/fwlink/?LinkId=160787.")]
public void ExecuteReportInCurrentAppDomain(
Evidence reportEvidence
)
[ObsoleteAttribute(L"This method requires Code Access Security policy, which is deprecated. For more information please go to https://go.microsoft.com/fwlink/?LinkId=160787.")]
public:
void ExecuteReportInCurrentAppDomain(
Evidence^ reportEvidence
)
[<ObsoleteAttribute("This method requires Code Access Security policy, which is deprecated. For more information please go to https://go.microsoft.com/fwlink/?LinkId=160787.")>]
member ExecuteReportInCurrentAppDomain :
reportEvidence:Evidence -> unit
public function ExecuteReportInCurrentAppDomain(
reportEvidence : Evidence
)
Parameter
- reportEvidence
Typ: System.Security.Policy.Evidence
Ein Evidence-Objekt, das Sicherheitsinformationen zum Bericht enthält.
Hinweise
Wichtig
Diese Methode ist für .NET Framework 4 veraltet, da auch die dafür erforderliche Funktion der Codezugriffssicherheit (Code Access Security, CAS) in .NET Framework 4 veraltet ist. Stattdessen wird in der Sandbox-Anwendungsdomäne immer das ReportViewer-Steuerelement ausgeführt. Es ist ratsam, AddFullTrustModuleInSandboxAppDomain und SetBasePermissionsForSandboxAppDomain zu verwenden. Falls Sie diese Methode mit .NET Framework 4 weiterhin nutzen möchten, müssen Sie das <NetFx40_LegacySecurityPolicy>-Konfigurationselement in der Datei "Web.config" der ASP.NET-Anwendung verwenden. Andernfalls löst diese Methode eine Ausnahme vom Typ InvalidOperationException aus.
Weitere Informationen finden Sie unter Code Access Security Policy Compatibility and Migration.
Im Bericht enthaltene Ausdrücke werden im aktuellen AppDomain-Objekt nur mit dem Sicherheitsberechtigungsflag Ausführung ausgeführt. Standardmäßig sind benutzerdefinierte Assemblys in diesem Modus nicht zugelassen. In .NET Framework 3.5 ist dies der Standardmodus und der Modus für vertrauenswürdige Berichte. Die Tabelle unten enthält die standardmäßigen Anwendungsdomänenmodi in den unterschiedlichen .NET Framework-Versionen.
.NET Framework-Version |
LegacySecurityPolicy aktiviert? |
Standardanwendungsdomäne |
Verwendbare Anwendungsdomänenmodi |
4 |
Nein (Standard) |
Sandbox |
Sandbox |
4 |
Ja |
Aktuell |
Sandbox und aktuell |
3.5 |
N/V |
Aktuell |
Sandbox und aktuell |
Dieser Modus kann auch beim Ausführen nicht vertrauenswürdiger Berichte eingesetzt werden, die vertrauenswürdige Verarbeitungserweiterungen verwenden.
Um vertrauenswürdige Verarbeitungserweiterungen zuzulassen, muss die Anwendung AddTrustedCodeModuleInCurrentAppDomain aufrufen.
Beispiele
In diesem Beispiel wird eine Assembly, die eine einfache Hilfsprogrammfunktion zum Lesen von Daten aus einer Textdatei enthält, als Ausdruck in einem Bericht verwendet.
using System.IO;
using System.Reflection;
public class Util
{
public static string GetData()
{
StreamReader sr = new StreamReader("data.txt");
string data = sr.ReadToEnd();
sr.Close();
return data;
}
}
Mithilfe des folgenden Codes wird zugelassen, dass der Bericht mit der benutzerdefinierten Assembly im aktuellen AppDomain-Objekt ausgeführt wird.
reportViewer.LocalReport.ReportPath = "Report1.rdlc";
reportViewer.LocalReport.ExecuteReportInCurrentAppDomain(
Assembly.GetExecutingAssembly().Evidence);
reportViewer.LocalReport.AddTrustedCodeModuleInCurrentAppDomain("Contoso.Utilities,
Version=1.0.271.0, Culture=neutral, PublicKeyToken=89012dab8080cc90");