PROBLEMA: Request.ServerVariables("LOGON_USER") retorna String vazio no ASP.NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 306359
Sintomas
Se você tentar acessar a variável Request.ServerVariables("LOGON_USER") no ASP.NET, será retornada uma seqüência vazia.

Observação : se você estiver usando o Microsoft Visual translation from VPE for Csharp .NET, a sintaxe a seguir acessa essa variável:
Request.ServerVariables["LOGON_USER"]				
Causa
Esse problema ocorre porque as variáveis relacionadas à autenticação na coleção ServerVariables não são preenchidas se você usar segurança de acesso anônimo para acessar a página .aspx. Esse problema também pode ocorrer se você conceder o acesso do usuário anônimo no <authorization> seção do arquivo Web.config.
Resolução
Para preencher a variável LOGON_USER quando você usa qualquer modo de autenticação diferente de nenhum, você pode negar o acesso ao usuário anônimo no <authorization> seção do arquivo Web.config. Para negar acesso para o usuário anônimo no <authorization> seção, execute essas etapas:
  1. Altere o modo de autenticação no arquivo Web.config para qualquer outra coisa diferente de None. Por exemplo, a seguinte entrada no arquivo Web.config define o modo de autenticação para autenticação baseada em formulários:
    <authentication mode="Forms" />					
  2. Para negar acesso para o usuário anônimo no arquivo Web.config, use a seguinte sintaxe:
    <authorization>   <deny users = "?" /> <!-- This denies access to the Anonymous user -->   <allow users ="*" /> <!-- This allows access to all users --></authorization>					
Se você estiver usando autenticação do Windows, você também pode usar as seguintes etapas para resolver esse problema:
  1. Alterar o modo de autenticação no arquivo Web.config para Windows da seguinte maneira:
    <authentication mode="Windows" />					
  2. No Gerenciador de serviços de Internet, clique com o botão direito do mouse no arquivo .aspx ou na pasta projeto da Web e em seguida, clique em Propriedades .
  3. Se você clicou em Propriedades para a pasta de projeto da Web, clique na guia Segurança de diretório . Se você clicou em Propriedades para o arquivo .aspx, clique na guia Segurança de arquivo .
  4. Em acesso anônimo e controle de autenticação , clique em Editar .
  5. Na caixa de diálogo métodos de autenticação , desmarque a caixa de seleção Acesso anônimo e selecione ambos o básica , Digest ou a caixa de seleção Integrated (NT Challenge/Response) .
  6. Clique em OK para fechar as duas caixas de diálogo.
Para obter instruções sobre como configurar a autenticação Digest, consulte a seção "Referências" no final deste artigo.
Situação
Esse comportamento é por design.
Mais Informações
O ASP.NET fornece novos modos de autenticação e autorização esquemas, que você pode configurar em arquivos .config. Por esse motivo, modificar os modos de autenticação no IIS sozinho pode não sempre produzir os resultados desejados. Portanto, você também deve considerar as configurações de segurança em arquivos .config.

Observação : quando você habilitar autenticação anônima em conjunto com o Windows autenticação ou se você conceder acesso para o usuário anônimo no <authorization> seção enquanto você estiver usando qualquer modo de autenticação diferente de nenhum, outras variáveis de servidor, como AUTH_USER e REMOTE_USER (assim como a propriedade HttpContext.Current.User.Identity.Name ) também retornará uma seqüência vazia. Você pode usar qualquer das resoluções de mencionados acima para preencher essas variáveis.

No ASP.NET, você também pode usar a propriedade IsAuthenticated do objeto de solicitação para determinar se a segurança de acesso anônimo está sendo usada. IsAuthenticated retorna "false" se o acesso anônimo está ativado e retorna "true" Se você usar qualquer outro meio de autenticação, como formulários, Passport, integrada (NT Challenge/Response), ou básica.
Referências
Para obter mais informações sobre segurança no ASP.NET, consulte o seguinte site da MSDN: Para obter informações adicionais, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
306590INFO: Visão geral sobre segurança do ASP.NET
222028Configurando Digest Authentication for Use with Internet Information Services 5.0
188717PROBLEMA: Request.ServerVariables("LOGON_USER") retorna vazio String
Permitir anônimo LOGON_USER AUTH_USER REMOTE_USER ASP HttpContext identidade usuário ServerVariables solicitação de nome

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 306359 - Última Revisão: 12/03/2007 19:53:26 - Revisão: 3.8

Microsoft ASP.NET 1.1, Microsoft Internet Information Services 6.0, Microsoft ASP.NET 1.0, Microsoft Internet Information Services 5.0

  • kbmt kbconfig kbprb kbsecurity kbweb KB306359 KbMtpt
Comentários