Como faço para obter o nome do usuário do Windows atual em ASP .Net MVC

1,060 views
Skip to first unread message

Ramsés França

unread,
Dec 7, 2015, 2:02:12 PM12/7/15
to .Net Architects

Gostaria de saber se alguém já conseguiu pegar o nome do usuário logado no windows?


Já testei o código:


//string usuarioWindows = System.Security.Principal.WindowsIdentity.GetCurrent().Name;


Ou


string[] splitName = WindowsIdentity.GetCurrent().Name.Split('\\');

string usuarioWindows = (splitName.Length > 1) ? splitName[1] + "@" + splitName[0] : null;


Mas quando o mesmo se  encontra no IIS Express ele mostra o nome da máquina/usuário, mas quando ele está publicado no IIS ele mostra assim "DefaultAppPool@IIS APPPOOL".


Gostaria de saber se tem alguma maneira de solucionar esse problema?


Grato pela atenção de todos.

 

Reinaldo Coelho

unread,
Dec 7, 2015, 3:16:10 PM12/7/15
to .Net Architects
Ramsés, só para que eu entenda melhor, você tem uma aplicação web ASPNET, e quer o usuário logado na máquina do usuário que está acessando o sistema pelo navegador é isso?

Porque o ponto é que se for isso, todo comando C# vai trabalhar no servidor e ai faz sentido ele pegar o usuário do IIS porque o IIS continua rodando por um usuário de sistema, mesmo sem nenhum usuário com sessão logada.

Neste caso não acredito que via Javascript seja possível obter esse tipo de informação devido a restrições de acesso/segurança.

Fazendo uma pesquisa rápida no google, encontrei um cara no StackOverflow que diz ter feito com ativação de Login Windows no IIS (http://stackoverflow.com/questions/3013692/getting-windows-username-with-javascript):

1down voteaccepted

The solution I found for getting the username sent to the server was:

string winlogon = Request.ServerVariables["LOGON_USER"];

After enabled Windows Authentication Mode in IIS.

Talvez esse ponto acima possa ser algo que valha a pena você verificar se atende sua necessidade.

Espero ter contribuido.

Abs.
Reinaldo.

Ramsés França

unread,
Dec 7, 2015, 3:32:42 PM12/7/15
to dotnetar...@googlegroups.com
Reinaldo, é isso mesmo. O cliente quer entrar no sistema ASP .NET MVC pegando o usuário que está logado na máquina (cliente). 

Com isso eu vou na base de dados e efetuo a autenticação do mesmo.

O código "string winlogon = Request.ServerVariables["LOGON_USER"];" vem um string vazia.

--
Você recebeu esta mensagem porque faz parte do grupo .Net Architects hospedado no Google Groups.
Para postar envie uma mensagem para dotnetar...@googlegroups.com
Para sair do grupo envie uma mensagem para dotnetarchitec...@googlegroups.com
Para mais opções visite o grupo em http://groups.google.com/group/dotnetarchitects?hl=pt-br
---
Você recebeu essa mensagem porque está inscrito no grupo ".Net Architects" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para dotnetarchitec...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Atenciosamente,

Ramsés França dos Prazeres

Celular: (81) 99183-8098 ou (81) 98850-8320
ramsesf...@gmail.com ou ramses...@hotmail.com 

Reinaldo Coelho

unread,
Dec 8, 2015, 6:03:45 AM12/8/15
to .Net Architects
Ramsés, parece que o problema seria o IIS não estar no modo de autenticação do windows, você chegou a fazer essas configurações?

Dá uma olhada nesses artigos, vê se ele te ajudam:

Nunes

unread,
Dec 8, 2015, 6:39:31 AM12/8/15
to .Net Architects
Ramsés,

Para fazer isso não seria melhor você estar trabalhando numa intranet ?

Abs


Evandro Nunes

Ramsés França

unread,
Dec 16, 2015, 7:56:32 AM12/16/15
to dotnetar...@googlegroups.com
Nunes e Reinaldo, agradeço a ajuda em primeira mão e desculpa pela demora de responder.

Já olhei aqui para configurar o IIS para trabalhar como intranet. 

Mas o problema todo é que o cliente quer entrar por uma url que estando no ambiente deles entrar de forma automática (ou seja uma intranet) não passando por uma tela de login
 e se acessar uma outra url que esteja fora do ambiente deles iria para uma tela de login e senha. 

Ramsés França

unread,
Dec 16, 2015, 8:00:11 AM12/16/15
to .Net Architects

Daniel Tiziani

unread,
Dec 16, 2015, 11:03:29 AM12/16/15
to dotnetar...@googlegroups.com
Isso me relembra um pouco da época de Sharepoint (produto/serviço maldito, que queime no fogo do inferno!!!)

O que você procura é mixed authentication, provavelmente precise de 2 endpoints no iis (dependendo da sua arquitetura).

Numa pesquisa de 2s achei um artigo para servir de base na sua pesquisa: http://k16c.eu/2015/09/20/mixed-authentication-ntlm-with-asp-net-identity/

Para aprofundar, associe OWIN com NTLM nas pesquisas e boa sorte! :-)

--

Renato Cantarino

unread,
Dec 16, 2015, 11:12:44 AM12/16/15
to dotnetar...@googlegroups.com
Só para ficar claro(para mim).
Vc quer as credenciais do usuário da rede?
--

Att,
Renato Cantarino

Bruno Fernandes

unread,
Dec 16, 2015, 12:35:02 PM12/16/15
to Dot Net Architects
vc quer implementar o Single Sign On (SSO)?


Atenciosamente,

Marcus Paulo da Silva Augusto

unread,
Dec 21, 2015, 10:52:47 AM12/21/15
to dotnetar...@googlegroups.com
Tenta isso:

Environment.UserName

--

Thiago Magalhães

unread,
Dec 21, 2015, 10:52:47 AM12/21/15
to .Net Architects
Boa tarde, Renato.

Estou com Ramses aqui.

No caso seria o usuário do windows que o usuário esta logado.
Reply all
Reply to author
Forward
0 new messages