<Elemento legacyImpersonationPolicy>
Especifica que a identidade do Windows não flui entre pontos assíncronos, independentemente das definições de fluxo para o contexto de execução no thread atual.
<configuração>
<runtime>
<legacyImpersonationPolicy>
Syntax
<legacyImpersonationPolicy
enabled="true|false"/>
Atributos e Elementos
As secções seguintes descrevem atributos, elementos subordinados e elementos principais.
Atributos
Atributo | Descrição |
---|---|
enabled |
Atributo obrigatório. Especifica que o WindowsIdentity não flui entre pontos assíncronos, independentemente das definições de ExecutionContext fluxo no thread atual. |
Atributo ativado
Valor | Descrição |
---|---|
false |
WindowsIdentity flui através de pontos assíncronos consoante as definições de ExecutionContext fluxo do thread atual. Esta é a predefinição. |
true |
WindowsIdentity não flui através de pontos assíncronos, independentemente das definições de ExecutionContext fluxo no thread atual. |
Elementos Subordinados
Nenhum.
Elementos Principais
Elemento | Descrição |
---|---|
configuration |
O elemento raiz em cada ficheiro de configuração utilizado pelo runtime de linguagem comum e .NET Framework aplicações. |
runtime |
Contém informações sobre o enlace de montagem e a libertação da memória. |
Observações
No .NET Framework versões 1.0 e 1.1, o WindowsIdentity não flui em quaisquer pontos assíncronos definidos pelo utilizador. A partir do .NET Framework versão 2.0, existe um ExecutionContext objeto que contém informações sobre o thread atualmente em execução e que flui através de pontos assíncronos dentro de um domínio de aplicação. O WindowsIdentity está incluído neste contexto de execução e, portanto, também flui pelos pontos assíncronos, o que significa que, se existir um contexto de representação, também fluirá.
A partir do .NET Framework 2.0, pode utilizar o <legacyImpersonationPolicy>
elemento para especificar que WindowsIdentity não flui em pontos assíncronos.
Nota
O runtime de linguagem comum (CLR) está ciente das operações de representação realizadas apenas com código gerido, não de representação realizada fora do código gerido, como através da invocação da plataforma para código não gerido ou através de chamadas diretas para funções Win32. Apenas os objetos geridos WindowsIdentity podem fluir através de pontos assíncronos, a menos que o alwaysFlowImpersonationPolicy
elemento tenha sido definido como verdadeiro (<alwaysFlowImpersonationPolicy enabled="true"/>
). Definir o alwaysFlowImpersonationPolicy
elemento como verdadeiro especifica que a identidade do Windows flui sempre em pontos assíncronos, independentemente da forma como a representação foi executada. Para obter mais informações sobre como fluir a representação não gerida em pontos assíncronos, veja <AlwaysFlowImpersonationPolicy Element (Elemento alwaysFlowImpersonationPolicy>).
Pode alterar este comportamento predefinido de duas outras formas:
No código gerido por thread.
Pode suprimir o fluxo por thread ao modificar as definições e SecurityContext com o ExecutionContext.SuppressFlowmétodo ou SecurityContext.SuppressFlowWindowsIdentitySecurityContext.SuppressFlow .ExecutionContext
Na chamada para a interface de alojamento não gerida para carregar o runtime de linguagem comum (CLR).
Se for utilizada uma interface de alojamento não gerida (em vez de um executável gerido simples) para carregar o CLR, pode especificar um sinalizador especial na chamada para a função Função CorBindToRuntimeEx . Para ativar o modo de compatibilidade para todo o processo, defina o
flags
parâmetro da Função CorBindToRuntimeEx para STARTUP_LEGACY_IMPERSONATION.
Para obter mais informações, veja AlwaysFlowImpersonationPolicy< Element (Elemento alwaysFlowImpersonationPolicy>).
Ficheiro de Configuração
Numa aplicação .NET Framework, este elemento só pode ser utilizado no ficheiro de configuração da aplicação.
Para uma aplicação ASP.NET, o fluxo de representação pode ser configurado no ficheiro de aspnet.config encontrado no diretório Pasta> do <Windows\Microsoft.NET\Framework\vx.x.xxxx.
ASP.NET, por predefinição, desativa o fluxo de representação no ficheiro de aspnet.config com 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, tem de utilizar explicitamente as seguintes definições de configuração:
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="false"/>
<alwaysFlowImpersonationPolicy enabled="true"/>
</runtime>
</configuration>
Exemplo
O exemplo seguinte mostra como especificar o comportamento legado que não flui a identidade do Windows em pontos assíncronos.
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
</runtime>
</configuration>