<alwaysFlowImpersonationPolicy> Elemento

Especifica que la identidad de Windows siempre fluye por puntos asincrónicos, independientemente de cómo se realizó la suplantación.

<configuración>
  <runtime>
    <alwaysFlowImpersonationPolicy>

Sintaxis

<alwaysFlowImpersonationPolicy
  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.

Indica si la identidad de Windows fluye entre puntos asincrónicos.

Atributo enabled

Valor Descripción
false La identidad de Windows no fluye entre puntos asincrónicos, a menos que la suplantación se realice a través de métodos administrados como Impersonate. Este es el valor predeterminado.
true La identidad de Windows siempre fluye por puntos asincrónicos, independientemente de cómo se realizó la suplantación.

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, la identidad de Windows no fluye entre puntos asincrónicos. En .NET Framework versión 2.0, hay un ExecutionContext objeto que contiene información sobre el subproceso que se está ejecutando actualmente y lo fluye a través de puntos asincrónicos dentro de un dominio de aplicación. WindowsIdentity También fluye como parte de la información que fluye a través de los puntos asincrónicos, siempre que la suplantación se lograra mediante métodos administrados como Impersonate y no a través de otros medios, como la invocación de plataforma a métodos nativos. Este elemento se usa para especificar que la identidad de Windows fluya entre puntos asincrónicos, independientemente de cómo se haya logrado la suplantación.

Puedes modificar este comportamiento predeterminado de otras dos maneras:

  1. En código administrado por subproceso.

    Puedes suprimir el flujo por subproceso modificando la configuración ExecutionContext y SecurityContext mediante el método ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentityo 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, puedes especificar una marca especial en la llamada a la función Función CorBindToRuntimeEx. Para habilitar el modo de compatibilidad para todo el proceso, establezca el flags parámetro para la función CorBindToRuntimeEx enSTARTUP_ALWAYSFLOW_IMPERSONATION.

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

En el ejemplo siguiente se muestra cómo especificar que la identidad de Windows fluye a través de puntos asincrónicos, incluso cuando la suplantación se logra mediante medios distintos de los métodos administrados.

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

Consulte también