Поделиться через


Метод LocalReport.ExecuteReportInCurrentAppDomain

Примечание. Этот 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 https://go.microsoft.com/fwlink/?LinkId=160787.")> _
Public Sub ExecuteReportInCurrentAppDomain ( _
    reportEvidence As Evidence _
)
'Применение
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
)

Параметры

Замечания

Важно!

Этот метод считается устаревшим для версии .NET Framework 4.0, поскольку функция управления доступом для кода, на которой он основан, является устаревшей в .NET Framework 4.0. Вместо этого элемент управления ReportViewer всегда выполняется в изолированном домене приложения. Следует использовать методы AddFullTrustModuleInSandboxAppDomain и SetBasePermissionsForSandboxAppDomain. Если нужно продолжить использование этого метода в версии .NET Framework 4.0, необходимо использовать элемент конфигурации <NetFx40_LegacySecurityPolicy> в файле Web.config приложения ASP.NET. В противном случае этот метод вызывает исключение InvalidOperationException.

Дополнительные сведения см. в разделе Code Access Security Policy Compatibility and Migration.

Выражения в отчете будут выполняться в текущем домене AppDomain с единственным флагом разрешения Execution. По умолчанию в этом режиме не допускаются пользовательские сборки. В версии .NET Framework 3.5 этот режим используется по умолчанию и предназначен для доверенных отчетов. Режимы доменов приложений, используемые по умолчанию в других версиях .NET Framework, см. в следующей таблице.

Версия .NET Framework

Действует LegacySecurityPolicy?

Домен приложения по умолчанию

Доступные режимы домена приложения

4

Нет (по умолчанию)

Изолированный

Изолированный

4

Да

Текущие

Изолированный и текущий

3.5

Неприменимо

Текущие

Изолированный и текущий

Этот режим может использоваться и для выполнения отчетов, которые не являются доверенными, но используют доверенные модули обработки данных.

Чтобы включить доверенные модули обработки данных, приложение должно вызвать метод 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");

См. также

Справочник

LocalReport Класс

Пространство имен Microsoft.Reporting.WebForms