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:
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.
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 comoSTARTUP_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>