Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Às vezes, talvez seja necessário obter um token de conta do Windows NT para representar uma conta do Windows.Por exemplo, seu aplicativo baseado em ASP.NET pode ter a agir em nome de vários usuários em momentos diferentes.Seu aplicativo pode aceitar um token que representa um administrador do Serviços de Informações da Internet (Serviços de Informações da Internet), representar o usuário, execute uma operação e reverter para a identidade anterior.Em seguida, ele pode aceitar um token do IIS que representa um usuário com menos direitos, realizar alguma operação e reverter novamente.
Em situações em que seu aplicativo deve representar uma conta do Windows que não foi anexada ao segmento corrente pelo IIS, recupere o token da conta e usá-lo para ativar a conta.Você pode fazer isso executando as seguintes tarefas:
Recuperar um token de conta para um determinado usuário fazendo uma telefonar à não-gerenciado LogonUser método.Esse método não está na biblioteca de classes base do .NET estrutura, mas está localizado no não gerenciado Advapi32.dll.Acesso aos métodos em código não gerenciado é uma operação avançada e está além do escopo desta discussão.Para obter mais informações, consulte Interoperating with Unmanaged Code.Para obter mais informações sobre o LogonUser método e Advapi32.dll, consulte a documentação do plataforma SDK.
Criar uma nova instância do WindowsIdentity classe, passando o token.O código a seguir demonstra essa telefonar, onde hToken representa um token do Windows.
WindowsIdentity ImpersonatedIdentity = new WindowsIdentity(hToken);Dim ImpersonatedIdentity As New WindowsIdentity(hToken)Comece a representação, criando uma nova instância do WindowsImpersonationContext classe e inicializando-o com o WindowsIdentity.Impersonate método da classe inicializada, conforme mostrado no código a seguir.
WindowsImpersonationContext MyImpersonation = ImpersonatedIdentity.Impersonate();WindowsImpersonationContext MyImpersonation = ImpersonatedIdentity.Impersonate()Quando você não precisa representar, telefonar o WindowsImpersonationContext.Undo método para reverter a representação, sistema autônomo mostra o código a seguir.
MyImpersonation.Undo();MyImpersonation.Undo()
Se código confiável já tiver anexado um WindowsPrincipal objeto para o segmento, você pode chamar o método de instância Representar, que não levará um token de conta.Observação que isso é útil somente quando o WindowsPrincipal objeto no thread representa um usuário diferente em que o processo está sendo executado no momento.Por exemplo, você pode encontrar esta situação usando ASP.NET com autenticação do Windows ativada e representação desativada.Nesse caso, o processo está sendo executado sob uma conta configurada no Serviços de Informações da Internet (Serviços de Informações da Internet) enquanto o objeto corrente representa o usuário do Windows que está acessando a página.
Observe que nenhuma das Representar nor Desfazer o é alteradoentidade de segurança de segurança objeto associado com o contexto de telefonar corrente.Em vez disso, a representação e reverter alterar símbolo associado ao processo do sistema operacional corrente
Consulte também
Conceitos
entidade de segurança de segurança e objetos de identidade
Using IIS Authentication with ASP.NET Impersonation