Capturar nombre de usuario de Windows

23/02/2005 - 12:59 por Chino | Informe spam
Hola,

Tengo una aplicación en la que tengo que capturar en usuario de windows con
el que ha entrado en la red.

Sé que en ASP.NET se configura el IIS con Autenticación de Windows Integrada
y se coge del Request.ServerVariables["LOGON_USER"], pero, ¿cómo lo hago en
VB.NET?

Muchas gracias,

CHINO

Preguntas similare

Leer las respuestas

#1 SqlRanger
23/02/2005 - 13:34 | Informe spam
En una aplicación Windows Forms puedes usar WindowsIdentity para ver el
nombre del usuario que ha iniciado sesión en la máquina:

System.Security.Principal.WindowsIdentity.GetCurrent.Name

En una aplicación ASP.NET lo habitual no es usar la variable de servidor
sino el usuario asociado al contexto http actual:

System.Web.HttpContext.Current.User.Identity.Name

No confundamos VB.NET con las aplicaciones Windows Forms. VB.NET es un
lenguaje de programación, con el que se pueden hacer distintos tipos de
aplicaciones como ASP.NET o Windows Forms. Con c# también podemos hacer este
tipo de aplicaciones y la forma de obtener el nombre del usuario es igual
que con VB.NET, la diferencia estriba en el tipo de aplicación que estemos
creando.

Saludos:

Jesús López
MVP


"Chino" escribió en el mensaje
news:#
Hola,

Tengo una aplicación en la que tengo que capturar en usuario de windows


con
el que ha entrado en la red.

Sé que en ASP.NET se configura el IIS con Autenticación de Windows


Integrada
y se coge del Request.ServerVariables["LOGON_USER"], pero, ¿cómo lo hago


en
VB.NET?

Muchas gracias,

CHINO


Respuesta Responder a este mensaje
#2 Jorge Serrano [MVP VB]
23/02/2005 - 15:11 | Informe spam
También sería válido, además de lo que bien apunta Jesús, hacerlo mediante la
instrucción:

System.Environment.UserName


Un saludo,

Jorge Serrano Pérez
MVP VB.NET


"SqlRanger" wrote:

En una aplicación Windows Forms puedes usar WindowsIdentity para ver el
nombre del usuario que ha iniciado sesión en la máquina:

System.Security.Principal.WindowsIdentity.GetCurrent.Name

En una aplicación ASP.NET lo habitual no es usar la variable de servidor
sino el usuario asociado al contexto http actual:

System.Web.HttpContext.Current.User.Identity.Name

No confundamos VB.NET con las aplicaciones Windows Forms. VB.NET es un
lenguaje de programación, con el que se pueden hacer distintos tipos de
aplicaciones como ASP.NET o Windows Forms. Con c# también podemos hacer este
tipo de aplicaciones y la forma de obtener el nombre del usuario es igual
que con VB.NET, la diferencia estriba en el tipo de aplicación que estemos
creando.

Saludos:

Jesús López
MVP


"Chino" escribió en el mensaje
news:#
> Hola,
>
> Tengo una aplicación en la que tengo que capturar en usuario de windows
con
> el que ha entrado en la red.
>
> Sé que en ASP.NET se configura el IIS con Autenticación de Windows
Integrada
> y se coge del Request.ServerVariables["LOGON_USER"], pero, ¿cómo lo hago
en
> VB.NET?
>
> Muchas gracias,
>
> CHINO
>
>



Respuesta Responder a este mensaje
#3 Chino
24/02/2005 - 10:43 | Informe spam
Hola!

Muchas gracias por las respuestas, he puesto:

System.Web.HttpContext.Current.User.Identity.Name

Pero no me funciona con hilos, me los deja colgados y el fichero donde
quiero escribirlo me lo deja pillado:

public void lanzaHilo()
{
try
{
ThreadStart refThreadStart = new ThreadStart(metodoLanzaHilo);
Thread refThread = new Thread(refThreadStart);
refThread.Start();
}
catch (Exception ex)
{
_s.WriteLine(DateTime.Now + " -- " + ex.Message);
}
}

private void metodoLanzaHilo()
{
try
{
_s.WriteLine(DateTime.Now + " - USUARIO: " +
System.Web.HttpContext.Current.User.Identity.Name);
}
catch (Exception ex)
{
_s.WriteLine(DateTime.Now + " -- " + ex.Message);
}
}

¿Alguien sabe por qué? ¿Qué otra opción puedo utilizar?

Muchas gracias,

CHINO
Respuesta Responder a este mensaje
#4 Chino
24/02/2005 - 10:47 | Informe spam
Sé que está en C#, es el código de prueba que he puesto, espero que no
moleste.

Gracias,

CHINO
Respuesta Responder a este mensaje
#5 Eduardo A. Morcillo [MS MVP VB]
24/02/2005 - 14:49 | Informe spam
Como primer medida deberias usar ThreadPool si los hilos se crean en cada
llamada del usuario a la pagina. Esto es porque ThreadPool limita la
cantidad de hilos que se pueden ejecutar al mismo tiempo. Si no se limitan
con simplemente cargar esa pagina muchas veces es seguro que se caiga el
servidor por el exceso de hilos. Si el metodo del hilo esta en la misma
pagina puedes acceder directamente a la propiedad User de la pagina. Si no,
ya que con ThreadPool puedes pasarle un objeto al metodo puedes pasarle el
contexto. Por ejemplo:

Public Sub LanzaHilo()
Try
ThreadPool.QueueUserWorkItem(AddressOf MetodoLanzaHilo,
HttpContext.Current)
Catch ex As Exception
Response.Write(DateTime.Now & " -- " & ex.Message)
End Try
End Sub

Private Sub MetodoLanzaHilo(ByVal state As Object)

Dim context As HttpContext = DirectCast(state, HttpContext)

Try
Response.Write(DateTime.Now & " - USUARIO: " &
context.User.Identity.Name)
Catch ex As Exception
Response.Write(DateTime.Now & " -- " & ex.Message)
End Try

End Sub


Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo

Las respuestas a los problemas de la vida
no estan en una botella... ¡Están en la TV!
Homero Simpson
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida