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


Элемент <legacyImpersonationPolicy>

Обновлен: Ноябрь 2007

Указывает, что удостоверение Windows не проходит через асинхронные точки, независимо от параметров потока для контекста выполнения в текущем потоке.

Элемент <configuration>
  Элемент <runtime>
    Элемент <legacyImpersonationPolicy>

<legacyImpersonationPolicy  
   enabled="true|false"/>

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут

Описание

enabled

Обязательный атрибут.

Указывает, что WindowsIdentity не проходит через асинхронные точки, независимо от параметров потока ExecutionContext в текущем потоке.

Включенный атрибут

Значение

Описание

false

WindowsIdentity проходит через асинхронные точки в зависимости от параметров потока ExecutionContext для текущего потока. Это значение используется по умолчанию.

true

WindowsIdentity не проходит через асинхронные точки независимо от параметров потока ExecutionContext в текущем потоке.

Дочерние элементы

Нет.

Родительские элементы

Элемент

Описание

configuration

Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями .NET Framework.

runtime

Содержит сведения о привязке сборок и сборке мусора.

Заметки

В платформе .NET Framework версии 1.0 и 1.1 WindowsIdentity не проходит через определенные пользователем асинхронные точки. В платформе .NET Framework версии 2.0 существует объект ExecutionContext, который содержит сведения о текущем выполняемом потоке и проводит его через асинхронные точки в домене приложения. WindowsIdentity также проходит как часть информации, проходящей через асинхронные точки. Это означает, что если имеется контекст олицетворения, то он также пройдет через асинхронные точки. Этот элемент используется для указания, что WindowsIdentity не проходит через асинхронные точки.

ms229296.alert_note(ru-ru,VS.90).gifПримечание.

Среда CLR учитывает операции олицетворения, выполняемые только с помощью управляемого кода, но не учитывает олицетворение, выполняемое за пределами управляемого кода, например с помощью вызова платформой неуправляемого кода или через прямое обращение к функциям Win32. Только управляемые объекты WindowsIdentity могут проходить через асинхронные точки, при условии, что для элемента alwaysFlowImpersonationPolicy не установлено значение "true" (<alwaysFlowImpersonationPolicy enabled="true"/>). Если же элемент alwaysFlowImpersonationPolicy имеет значение "true", то удостоверениеWindows всегда будет проходить через асинхронные точки, независимо от того, как было выполнено олицетворение. Дополнительные сведения о прохождении неуправляемого олицетворения через асинхронные точки см. в разделе Элемент <alwaysFlowImpersonationPolicy>.

Этот элемент можно использовать только в файле конфигурации приложения.

Данное заданное по умолчанию поведение можно изменить двумя способами.

  1. В управляемом коде для каждого потока.

    Можно подавить прохождение в каждом потоке, изменив параметры ExecutionContext и SecurityContext с помощью метода ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity или SecurityContext.SuppressFlow.

  2. В вызове неуправляемого интерфейса размещения для загрузки среды CLR.

    Если для загрузки среды CLR используется неуправляемый интерфейс размещения (вместо простого управляемого исполняемого файла), можно указать специальный флаг вызова функции Функция CorBindToRuntimeEx. Чтобы включить режим совместимости для всего процесса, установите для параметра flags для Функция CorBindToRuntimeEx значение "STARTUP_LEGACY_IMPERSONATION".

Пример

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

<configuration>
   <runtime>
      <legacyImpersonationPolicy enabled="true"/>
   </runtime>
</configuration>

См. также

Ссылки

Схема параметров среды выполнения

Другие ресурсы

Схема файлов конфигурации для .NET Framework