Метод 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
)
Параметры
- reportEvidence
Тип: System.Security.Policy.Evidence
Объект 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");