<legacyImpersonationPolicy> Element
Especifica que a identidade do Windows não flui entre pontos assíncronos, independentemente das configurações de fluxo para o contexto de execução no thread atual.
<
>
de configuração
<tempo de execução>
<legacyImpersonationPolicy>
Sintaxe
<legacyImpersonationPolicy
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. Especifica que o WindowsIdentity não flui entre pontos assíncronos, independentemente das configurações de fluxo de ExecutionContext no thread atual. |
atributo enabled
Valor | Descrição |
---|---|
false |
WindowsIdentity flui através de pontos assíncronos dependendo das configurações de fluxo ExecutionContext para o thread atual. Este é o padrão. |
true |
WindowsIdentity não flui entre pontos assíncronos, independentemente das configurações de fluxo de ExecutionContext no thread atual. |
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, o WindowsIdentity não flui através de quaisquer pontos assíncronos definidos pelo usuário. A partir do .NET Framework versão 2.0, há um objeto ExecutionContext que contém informações sobre o thread em execução no momento e flui entre pontos assíncronos dentro de um domínio de aplicativo. O WindowsIdentity está incluído nesse contexto de execução e, portanto, também flui através dos pontos assíncronos, o que significa que, se existir um contexto de representação, ele também fluirá.
A partir do .NET Framework 2.0, você pode usar o elemento <legacyImpersonationPolicy>
para especificar que WindowsIdentity não flui entre pontos assíncronos.
Observação
O Common Language Runtime (CLR) está ciente de operações de representação executadas usando apenas código gerenciado, não de representação realizada fora do código gerenciado, como por meio de chamada de plataforma para código não gerenciado ou por meio de chamadas diretas para funções do Win32. Somente objetos WindowsIdentity gerenciados podem fluir através de pontos assíncronos, a menos que o elemento alwaysFlowImpersonationPolicy
tenha sido definido como true (<alwaysFlowImpersonationPolicy enabled="true"/>
). Definir o elemento alwaysFlowImpersonationPolicy
como true especifica que a identidade do Windows sempre flui entre pontos assíncronos, independentemente de como a representação foi executada. Para obter mais informações sobre como fluir a representação não gerenciada em pontos assíncronos, consulte <alwaysFlowImpersonationPolicy> Element.
Você pode alterar esse comportamento padrão de duas outras maneiras:
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.SuppressFlowWindowsIdentity ou SecurityContext.SuppressFlow.
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_LEGACY_IMPERSONATION.
Para obter mais informações, consulte a <elemento de> alwaysFlowImpersonationPolicy.
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 o comportamento herdado que não flui a identidade do Windows entre pontos assíncronos.
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
</runtime>
</configuration>