none
Pegar nome de usuário que está logado no Windows pelo AD (Active Directory)

    Question

  • Boa tarde Pessoal!!

     

    Já faz tempo que eu não escrevo, mas estou com um problema gigantesco, e depois de uma semana surfando na net sem conseguir nenhuam solução, resolvi apelar para a nossa comunidade de gurus Smile

     

    Na empresa que eu trabalho tem uma intranet, que estou migrando para ASP.Net, utilizando C#. Pois bem, todos os computadores internos da rede estão sendo autenticados por Active Directory, ou seja, ou você faz o login no Domínio, ou não consegue fazer nada na rede.

     

    Como eu faço para pegar o nome do usuário da máquina que está logado, assim que ele abre o navegador (primeira página é a da intranet) SEM que o usuário necessite digitar o login e a senha para continuar ???

    Já tentei sem sucesso até

    "

    string user = HttpContext.Current.User.Identity.Name;

    "

    De todas as soluções que eu encontrei até agora, você é obrigado a digitar os seus dados. Porém eu preciso de uma solução em que você tenha que fazer isso, somente quem está fora do range de IP (isso eu já consegui filtrar).

     

    Para facilitar um pouco para vocês, considerem que eu acabei de criar um novo WebSite no Visual Studio... Depois eu me viro para configurar com o que eu já tenho.

     

    Obrigado!!

    Alexandre

    Thursday, March 13, 2008 8:00 PM

Answers

  • Olá Jucemar, não entendi bem sua necessidade.

    Conforme você mesmo disse você pode usar o HttpContext.Current.User.Identity.Name para buscar o usuário logado no AD, sendo assim qual é sua dúvida?

    Abaixo um código completo de uma página ASPX que simplesmente escreve o nome usuário logado no formulário:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
     <title>Untitled Page</title>
    </head>
    <body>
     <form id="form1" runat="server">
     <div>
     <%= HttpContext.Current.User.Identity.Name%> 
     </div>
     </form>
    </body>
    </html>
    
    

    Atenciosamente


    Se o post foi útil marque como resposta. - Advanced Web Application - MCP - Twitter: @mpghelli
    Wednesday, November 24, 2010 6:12 PM

All replies

  • Mais uma informação:

     

    quando executo o código

     

    protected void Page_Load(object sender, EventArgs e)

    {

    string strName = Request.ServerVariables["AUTH_USER"];

    Response.Write(strName);

     

    string usuario = HttpContext.Current.User.Identity.Name.ToString();

    Response.Write(usuario);

     

    System.Security.Principal.WindowsPrincipal p = System.Threading.Thread.CurrentPrincipal as System.Security.Principal.WindowsPrincipal;

    string strName2 = p.Identity.Name;

    Response.Write(strName2);

     

    }

     

     

    Em algumas máquinas da rede da empresa aceitam (ou seja, não aparece a tela de login).

     

    O IIS (estou usando a versão 7) está configurado como: Windows Authentication - enable. todos os outros estão disable

    Friday, March 14, 2008 6:08 PM
  • Olá Alexandre,

     

    Estava com o mesmo problema que você e usei assim:

     

    string usuario = Environment.UserName.ToString();

     

    se não der certo da uma olhada nesse artigo:

     

    http://www.codeproject.com/KB/vb/Windows_Service.aspx

     

    Espero ter ajudado!

     

    Thursday, September 18, 2008 11:12 AM
  • Olá Alexandre,

     

    Como está o seu Web.config. Pode nos mostrar?

     

    Abraços,
    Caio Proiete




    Caio Proiete
    http://www.caioproiete.com
    Thursday, September 18, 2008 1:42 PM
  • Boa tarde Alexandre,


    Estava com um trabalho muito semelhante, resolvi da maneira mais simples possível, pois o cliente tinha na tabela todos os usuários cadastrados com o user de domínio.

    Então eu simplesmente utilizo o Request.ServerVariables("LOGON_USER"), ele retorna o domínio/usuário, sendo assim eu valido o domínio com um IF msm e depois faço um select no banco só para tirar a prova dos 10, sacou?

    Isso resolveu meu problema, agora posso te dizer que existem N formas de trabalhar com o AD... Dá uma olhadinha neste tópico: http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=2497790&SiteID=21



    []´s
    Thursday, September 18, 2008 7:08 PM
  • Pessoal, Preciso de um help de vocês em ASP.NET, sou programador de PHP, ASP e não sei ASP.NET mas só ela vai resolver o que preciso.

    Tenho minha intranet e necessito auto-identificar o usuário que esta logado na máquina, o usuário do AD - Active Directory.

    Só tenho um problema trabalho em php, asp e não consigo resgatar, somente se pedir autenticação.

    Em asp.net dá para escrever o usuário da máquina pelo que eu vi com o objeto HttpContext.Current.User.Identity.Name..

    Por favor, podes me passar um arquivo de exemplo que escreva somente o Nome do Usúario logado?

    Obrigado,
    Jucemar
    jucemarweb@gmail.com

    Wednesday, November 24, 2010 4:52 PM
  • Olá Jucemar, não entendi bem sua necessidade.

    Conforme você mesmo disse você pode usar o HttpContext.Current.User.Identity.Name para buscar o usuário logado no AD, sendo assim qual é sua dúvida?

    Abaixo um código completo de uma página ASPX que simplesmente escreve o nome usuário logado no formulário:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
     <title>Untitled Page</title>
    </head>
    <body>
     <form id="form1" runat="server">
     <div>
     <%= HttpContext.Current.User.Identity.Name%> 
     </div>
     </form>
    </body>
    </html>
    
    

    Atenciosamente


    Se o post foi útil marque como resposta. - Advanced Web Application - MCP - Twitter: @mpghelli
    Wednesday, November 24, 2010 6:12 PM
  • Se você quiser pegar somente o nome do usuário sem o nome do dominio você basta substituir HttpContext.Current.User.Identity.Name por System.Environment.UserName

    Atenciosamente


    Se o post foi útil marque como resposta. - Advanced Web Application - MCP - Twitter: @mpghelli
    Wednesday, November 24, 2010 6:30 PM
  • Olá Jucemar,

    Caso seu problema tenha sido resolvido, favor marcar como resposta os posts que lhe ajudaram a resolver o problema, isto facilita aos demais usuários do forúm a encontrarem as informações procuradas.

    Caso ainda o problema ainda não tenha sido resolvido, você pode identificar o que não está dando certo para que possamos respondê-lo.

    Obrigado


    Se o post foi útil marque como resposta. - Advanced Web Application - MCP - Twitter: @mpghelli
    Thursday, November 25, 2010 4:01 PM