Elemento <alwaysFlowImpersonationPolicy>

Especifica que a identidade do Windows sempre fluirá por pontos assíncronos, independentemente de como a representação tenha sido executada.

<configuração>
  <runtime>
    <alwaysFlowImpersonationPolicy>

Syntax

<alwaysFlowImpersonationPolicy
  enabled="true|false"/>  

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
enabled Atributo obrigatório.

Indica se a identidade do Windows flui entre pontos assíncronos.

Atributo habilitado

Valor Descrição
false A identidade do Windows não flui entre pontos assíncronos, a menos que a representação seja executada por meio de métodos gerenciados, como Impersonate. Esse é o padrão.
true A identidade do Windows sempre fluirá por pontos assíncronos, independentemente de como a representação tenha sido executada.

Elementos filho

Nenhum.

Elementos pai

Elemento Descrição
configuration O elemento raiz em cada arquivo de configuração usado pelos aplicativos do Common Language Runtime e .NET Framework.
runtime Contém informações sobre associação do assembly e coleta de lixo.

Comentários

No .NET Framework 1.0 e 1.1, a identidade do Windows não flui entre pontos assíncronos. No .NET Framework 2.0, há um objeto ExecutionContext que contém informações sobre o thread atualmente em execução e o flui entre pontos assíncronos dentro de um domínio do aplicativo. O WindowsIdentity também flui como parte das informações que fluem entre os pontos assíncronos, desde que a representação tenha sido obtida usando métodos gerenciados, como Impersonate, e não por outros meios, como invocação de plataforma para métodos nativos. Esse elemento é usado para especificar que a identidade do Windows flui entre pontos assíncronos, independentemente de como a representação foi obtida.

Você pode alterar esse comportamento padrão de duas outras maneiras:

  1. No código gerenciado por thread.

    Você pode suprimir o fluxo por thread modificando as configurações ExecutionContext e SecurityContext usando o método ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity ou SecurityContext.SuppressFlow.

  2. Na chamada para a interface do host não gerenciada para carregar o Common Language Runtime (CLR).

    Se uma interface de hospedagem não gerenciada (em vez de um executável gerenciado simples) for usada para carregar o CLR, você poderá especificar um sinalizador especial na chamada para a função CorBindToRuntimeEx. Para habilitar o modo de compatibilidade em todo o processo, defina o parâmetro flags da FunçãoCorBindToRuntimeEx como STARTUP_ALWAYSFLOW_IMPERSONATION.

Arquivo de configuração

Em um aplicativo .NET Framework, esse elemento só pode ser usado no arquivo de configuração de aplicativo.

Para um aplicativo ASP.NET, o fluxo de representação pode ser configurado no arquivo aspnet.config, localizado no diretório <Pasta Windows>\Microsoft.NET\Framework\vx.x.xxxx.

Por padrão, o ASP.NET desabilita o fluxo de representação no arquivo aspnet.config usando as seguintes configurações:

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

No ASP.NET, se você quiser habilitar o fluxo de representação, deverá usar explicitamente as seguintes configurações:

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

Exemplo

O exemplo a seguir mostra como especificar que a identidade do Windows flua entre pontos assíncronos, mesmo quando a representação for obtida por meios diferentes dos métodos gerenciados.

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

Confira também