Obtendo a conta do usuário em rede interna em ASP.NET

Em aplicações de Intranet que requerem validação de usuários não compensa ficar mostrando telas de login. Basta verificar se o usuário (conectado na rede) pode acessar a aplicação.
Ou seja, a aplicação vai obter a nome do usuário que a está acessando e ver se ele está cadastrado na sua tabela de usuários.

Pra se obter os dados corretamente é necessário desabilitar o acesso anônimo no IIS (Internet Information Services) da máquina hospedeira.


Mostrar o nome do usuário, domínio e os grupos a que pertence
protected void MostrarConta ()

{
  IdentityReferenceCollection IRC;
  NTAccount                   NTA;
  string                      Dominio, DominioNome, FDL, Nome;

  Nome       = System.Environment.UserName;
  Dominio    = System.Environment.UserDomainName;
  DominioNome= WindowsIdentity.GetCurrent ().Name;

  FDL        = (char) 10 + "        ";
  Conta.Text = "Conta:" + FDL + Nome + FDL + Dominio + FDL + DominioNome + '\xA' + '\xA' + "Grupos:";
  IRC        = WindowsIdentity.GetCurrent ().Groups;

  foreach (IdentityReference IR in IRC) {
    NTA        = (NTAccount) IR.Translate (typeof (NTAccount));
    Conta.Text+= FDL + NTA.Value;
  }
}


Clique aqui pra baixar o código




http://transeberiano.brinkster.net