Comparteix a través de


Elemento <legacyImpersonationPolicy>

Especifica que la identidad de Windows no fluye por puntos asincrónicos, independientemente de la configuración del flujo del contexto de ejecución del subproceso actual.

<configuration>
  <runtime>
    <legacyImpersonationPolicy>

Sintaxis

<legacyImpersonationPolicy
   enabled="true|false"/>  

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo Descripción
enabled Atributo necesario.

Especifica que WindowsIdentity no fluye por puntos asincrónicos, independientemente de la configuración del flujo de ExecutionContext del subproceso actual.

Atributo enabled

Valor Descripción
false WindowsIdentity fluye a través de puntos asincrónicos en función de la configuración de flujo de ExecutionContext del subproceso actual. Este es el valor predeterminado.
true WindowsIdentity no fluye por puntos asincrónicos, independientemente de la configuración del flujo de ExecutionContext del subproceso actual.

Elementos secundarios

Ninguno.

Elementos primarios

Elemento Descripción
configuration Elemento raíz de cada archivo de configuración usado por las aplicaciones de Common Language Runtime y .NET Framework.
runtime Contiene información del enlace del ensamblado y de la recolección de elementos no utilizados.

Comentarios

En las versiones 1.0 y 1.1 de .NET Framework, WindowsIdentity no fluye a través de ningún punto asincrónico definido por el usuario. A partir de .NET Framework, versión 2.0, hay un objeto ExecutionContext que contiene información sobre el subproceso que se está ejecutando actualmente y fluye entre puntos asincrónicos dentro de un dominio de aplicación. El objeto WindowsIdentity se incluye en este contexto de ejecución y, por tanto, también fluye a través de los puntos asincrónicos, lo que significa que si existe un contexto de suplantación, también fluirá.

A partir de .NET Framework 2.0, puede usar el elemento <legacyImpersonationPolicy> para especificar que WindowsIdentity no fluye entre puntos asincrónicos.

Nota

Common Language Runtime (CLR) es consciente de las operaciones de suplantación realizadas con solo código administrado, no de la suplantación realizada fuera del código administrado, como mediante la invocación de plataforma a código no administrado o a través de llamadas directas a funciones Win32. Solo los objetos administrados WindowsIdentity pueden fluir entre puntos asincrónicos, a menos que el elemento alwaysFlowImpersonationPolicy se haya establecido en true (<alwaysFlowImpersonationPolicy enabled="true"/>). La configuración del elemento alwaysFlowImpersonationPolicy en true especifica que la identidad de Windows siempre fluye por puntos asincrónicos, independientemente de cómo se realizó la suplantación. Para obtener más información sobre el flujo de suplantación no administrada entre puntos asincrónicos, vea <alwaysFlowImpersonationPolicy> (elemento).

Puede modificar este comportamiento predeterminado de otras dos maneras:

  1. En código administrado por subproceso.

    Puede suprimir el flujo por subproceso modificando la configuración ExecutionContext y SecurityContext mediante el método ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity o SecurityContext.SuppressFlow.

  2. En la llamada a la interfaz de hospedaje no administrada para cargar Common Language Runtime (CLR).

    Si se usa una interfaz de hospedaje no administrada (en lugar de un archivo ejecutable administrado simple) para cargar CLR, puede especificar una marca especial en la llamada a la función CorBindToRuntimeEx. Para habilitar el modo de compatibilidad para todo el proceso, establezca el parámetro flags de la función CorBindToRuntimeEx en STARTUP_LEGACY_IMPERSONATION.

Para obtener más información, vea <alwaysFlowImpersonationPolicy> (elemento).

Archivo de configuración

En una aplicación de .NET Framework, este elemento solo se puede usar en el archivo de configuración de la aplicación.

Para una aplicación de ASP.NET, el flujo de suplantación se puede configurar en el archivo aspnet.config que se encuentra en el <directorio Carpeta> de Windows\Microsoft.NET\Framework\vx.x.xxxx.

ASP.NET deshabilita de forma predeterminada el flujo de suplantación en el archivo aspnet.config mediante las siguientes opciones de configuración:

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

En ASP.NET, si desea permitir el flujo de suplantación en su lugar, debe usar explícitamente las siguientes opciones de configuración:

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

Ejemplo

El siguiente ejemplo se muestra cómo especificar el comportamiento heredado que no hace fluir la identidad de Windows a través de puntos asíncronos.

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

Consulte también