Partilhar via


Elemento <alwaysFlowImpersonationPolicy>

Especifica que a identidade do Windows sempre flui entre pontos assíncronos, independentemente de como a representação foi executada.

<configuration>
  <runtime>
    <alwaysFlowImpersonationPolicy>

Sintaxe

<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 enabled

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. Este é o padrão.
true A identidade do Windows sempre flui através de pontos assíncronos, independentemente de como a representação foi executada.

Elementos filho

Nenhuma.

Elementos pai

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

Comentários

No .NET Framework versões 1.0 e 1.1, a identidade do Windows não flui entre pontos assíncronos. No .NET Framework versão 2.0, há um objeto ExecutionContext que contém informações sobre o thread em execução no momento e o flui entre pontos assíncronos dentro de um domínio de aplicativo. O WindowsIdentity também flui como parte das informações que fluem através dos pontos assíncronos, desde que a representação tenha sido alcançada usando métodos gerenciados, como Impersonate e não por outros meios, como a 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 alcançada.

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

  1. Em código gerenciado por thread.

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

  2. Na chamada para a interface de hospedagem 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 para todo o processo, defina o parâmetro flags para de função CorBindToRuntimeEx como STARTUP_ALWAYSFLOW_IMPERSONATION.

Arquivo de configuração

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

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

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

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

No ASP.NET, se quiser permitir o fluxo de representação, use explicitamente as seguintes definições de configuração:

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

Exemplo

O exemplo a seguir mostra como especificar que a identidade do Windows flui através de pontos assíncronos, mesmo quando a representação é obtida por meios diferentes de métodos gerenciados.

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

Ver também