none
LDAP com ASP.Net - Pegar nome de usuário logado no Windows quando inicia página da intranet RRS feed

  • Pergunta

  • Boa tarde.

     

    Estou precisando com certa urgência, saber como faço para pegar o nome de usuário que está logado na máquina (Windows) assim que inicia a página da intranet da empresa.

     

    Os usuários se logan através de Active Directory (quando iniciam o Windows), ou seja, já é feita uma autenticação no domínio.

     

    Já tentei fazer o seguinte na minha própria máquina para testar:

     

    protected void Page_Load(object sender, EventArgs e)
        {

            string principal = this.Context.User.Identity.Name;
            principal = principal.Substring(principal.IndexOf("\\") + 1);
            Response.Write(principal);

     

            string strName = Request.ServerVariables["AUTH_USER"];
            Response.Write(strName);

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

     

            String username = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
            Response.Write(username);


        }

     

    Realmente me retorna, porém quando algum outro usuário da rede tenta acessar essa página de teste, abre uma tela para ele inserir Login e senha. O modo de autenticação no IIS está como "Windows authentication".

     

    Se ele colocar o login e senha, funciona, porém necessito de um modo o nome do usuário logado seja coletado, sem que precise de uma tela de login.

     

    Alguém saberia algum caminho que posso estar seguindo para conseguir resolver esse problema ?? As informações que encontrei através de pesquisas no Google e em outros sites informam quase 100% das vezes o modo com o "form authetication", ou seja, com essa tela de login.

     

    Obrigado antecipadamente pela ajuda.

     

    Alexandre

    segunda-feira, 17 de março de 2008 16:59

Todas as Respostas

  • Code Snippet
    //=======================================================
    //Place this at the top, above your namespace declarationusing System.Security.Principal;
    //=======================================================
    //In a specific event, place the following.string a;
    a = System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString();MessageBox.Show(a.ToString());

     

     

    http://www.codeproject.com/KB/cs/getusername.aspx
    segunda-feira, 17 de março de 2008 17:15
  • Macul,


    Agradeço a resposta, mas quando eu uso esse código que você passou aparece para mim

    "NT AUTHORITY\NETWORK SERVICE"

    E eu preciso do nome do usuário que logou no Windows.

     

    Alguma alteração no web.config é necessário ??

     

    Obrigado,

    Alexandre

     

    segunda-feira, 17 de março de 2008 18:09
  •  

    Desculpe,

     

    assim só funciona windows forms

     

    segue :

     

    Code Snippet
    Dim arstrUsuario() = Split(Context.User.Identity.Name, "\")
            Dim strUsuario As String = arstrUsuario(1)

     

     

     

    Esse está funcionando em um programa meu. Como  vc fez . Pelo que me lembro sempre aparece a tela de login.

    segunda-feira, 17 de março de 2008 20:13
  • Macul,

     

    Obrigado novamente pela resposta.

     

    Continuando novamente nas pesquisas pela internet, achei algo relacionado com o IIS, ou seja, acredito que seja a configuração do IIS, ou mesmo do web.config, que irá confrontar o usuário do Windows com o AD. Dessa forma, não irá precisar da tela de login.

     

    Se tiver alguma idéia, agradeço!!

     

    Att,

    Alexandre

    segunda-feira, 17 de março de 2008 20:28
  • Alexandre,

     

    eu verifiquei e na minha solução ele pede o usuário do windows quando acessa o browser,

    alterei a configuração no IIS (executar ...inetmgr)

     

    Directory security ... "Integrated Windows athentication"

     

    T +

    MACUL

    quinta-feira, 20 de março de 2008 22:31
  • Code Snippet



    Vá até as Opções de Internet do IE, Aba Security, clique em Local Intranet e, em seguida, em Custom Level. Lá terá uma opção chamada "User Authentication". Veja se nas duas máquinas estão com o mesmo valor.

     

    Israel Aéce

     

     

     

    terça-feira, 25 de março de 2008 18:20