本文為機器翻譯文章。如需檢視英文版,請選取 [原文] 核取方塊。您也可以將滑鼠指標移到文字上,即可在快顯視窗顯示英文原文。
譯文
原文

LocalReport.ExecuteReportInCurrentAppDomain 方法 (Evidence)

 
注意: 此 API 現已淘汰。

處理延伸模組與報表中的運算式,會使執行目前 AppDomain

命名空間:   Microsoft.Reporting.WebForms
組件:  Microsoft.ReportViewer.WebForms (於 Microsoft.ReportViewer.WebForms.dll)

[ObsoleteAttribute("This method requires Code Access Security policy, which is deprecated.  For more information please go to http://go.microsoft.com/fwlink/?LinkId=160787.")]
public void ExecuteReportInCurrentAppDomain(
	Evidence reportEvidence
)

參數

reportEvidence
Type: System.Security.Policy.Evidence

Evidence 物件,其中包含報表的安全性資訊。

System_CAPS_important重要

這個方法已被取代的 .NET Framework 4 因為程式碼存取安全性 (CAS) 功能依賴中已被取代 .NET Framework 4。 相反地,ReportViewer 控制項永遠會在沙箱應用程式定義域中執行。 您應該使用 AddFullTrustModuleInSandboxAppDomainSetBasePermissionsForSandboxAppDomain 如果您想要繼續使用這個方法與 .NET Framework 4,您必須使用 ASP.NET 應用程式的 Web.config 檔案中。 否則,這個方法會擲回 InvalidOperationException

如需詳細資訊,請參閱 程式碼存取安全性原則相容性和移轉

報表中的運算式將會執行在目前 AppDomain 只有 執行 安全性權限旗標。 根據預設,此模式中不允許自訂組件。 在 .NET Framework 3.5,這是預設模式,而且可為信任報表所使用的模式。 請參閱下表中的預設應用程式網域中的模式不同 .NET Framework 版本。

.NET Framework 版本

啟用 LegacySecurityPolicy?

預設應用程式定義域

可用的應用程式定義域模式

4

否 (預設值)

沙箱

沙箱

4

目前

沙箱和目前

3.5

N/A

目前

沙箱和目前

此模式也可用來執行不受信任的報表,並使用受信任的處理延伸模組。

若要允許受信任的處理延伸模組,應用程式必須呼叫 AddTrustedCodeModuleInCurrentAppDomain

在此範例中,包含從文字檔讀取某些資料的簡單公用程式函式的自訂組件做為報表中的運算式。

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

下列程式碼用來允許具有自訂組件中目前執行的報表 AppDomain

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");
回到頁首
顯示: