Partilhar via


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

  1. 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

  2. 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>  

Ver também