Visual Basic.NET - My.User.Name retorna vacio

 
Vista:

My.User.Name retorna vacio

Publicado por Dan (1 intervención) el 21/10/2016 20:16:42
Hola amigos.
quisiera su ayuda para resolver el siguiente problema.
Tengo una aplicación en VB.net que requiere una vez ingresada la sesión vía login, conocer el nombre del usuario, para permitirle algunas consultas o actualización de sus datos. Para ello uso My.User.Name, como se puede ver mas abajo, para acceder a datos personales del usuario, en el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 
    Dim returndata As String
    If Page.IsPostBack Then
    Else
        returndata = customer_query()
        If returndata = My.User.Name Then
            Nombre0.Text = "NOMBRE"
            Apellido0.Text = "APELLIDO"
            Direccion0.Text = "DIRECCION"
            Ciudad0.Text = "CIUDAD"
            Pais0.Text = "PAIS"
            Telefono0.Text = "TELEFONO"
            Mobil0.Text = "MOBIL"
            Genero0.Text = "GÉNERO"
            Fnacimiento0.Text = "FECHA DE NACIMIENTO"
            Email0.Text = "EMAIL"
            Label11.Text = "Registro Activo"
            Direccion.Focus()
        Else
            Label11.Text = "Usuario No existe"
        End If
    End If
 
End Sub


Mi problema es el siguiente:

Paso 1. El usuario se da login, sin problema.
Paso 2. EL usuario quiere consultar o actualizar sus datos, aquí esta el problema.

Cuando corro el sistema desde el Servidor Web (hosting) y utilizo Opera o Microsoft Edge funciona perfectamente y el sistema retorna el My.User.Name, con el cual se accede a los datos y otras consultas.
Pero, cuando utilizo Chrome, Safari o Firefox , el sistema retorna My.User.Name en blanco.

He tratado de ver cual es la causa y realmente no se la razón.

Por otro lado, cuando corro el sistema desde el Servidor Local de desarrollo (IIS), el sistema funciona perfectamente y no importa que browser este usando, siempre retorna el My.User.Name correcto.

Estoy corriendo en maquinas con Windows 7 y Windows 10, tambien con IOS (IPAD).

Si alguien ha experimentado este problema o tiene alguna idea de porque ocurre esto, estaré muy agradecido me lo compartan.

slds
Dan
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

My.User.Name retorna vacio

Publicado por Nacho (56 intervenciones) el 22/10/2016 14:32:59
El problema es que os gusta mucho discutir con los ordenadores.

My.User hace lo que hace, no lo que a ti te gustaría que hiciera. El usuario no es lo mismo en cualquier sistema operarivo y menos en una aplicación web. Mírate el My.User en la msdn a ver si lo ves.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

My.User.Name retorna vacio

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 23/10/2016 06:19:58
Lo que te dice Nacho es correcto, no es lo mismo My.User.Name en una aplicacion local o windows que en web, por lo tanto te recomiendo que le eches una mirada a la documentación de ASP.NET Identity.

Saludos cordiales,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

My.User.Name retorna vacio

Publicado por Dan (2 intervenciones) el 24/10/2016 02:19:00
Gracias Nacho y Wilfredo. Paso a explicar de mejor manera.

No tengo problemas en que el Usuario se de login. esto funciona perfectamente. para ello estoy usando la plantilla estandar de login de Visual Web Developer 2010 y la Base de Datos ASPNET que se crea para manejar los usuarios, passwords, membresias, etc..

Posterior al login, requiero conocer el "UserName" del Usuario, el que se dio login, cuya sesión esta activa, en base al cual puedo realizar consultas a las bases de datos de cliente, etc..

La unica manera que veo factible es usar My.User.Name, y esto funciona perfectamente en unos navegadores (retorna el Username) y en otros no (retorna en blanco).

Segun entiendo de sus respuestas, el utilizar My.User.Name no es confiable...?? entonces me podrian indicar que otra opcion puedo utilizar para obtener este dato, y que sea confiable..

Gracias por su tiempo y expertise.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

My.User.Name retorna vacio

Publicado por Nacho (56 intervenciones) el 24/10/2016 12:46:34
No te has mirado la msdn.

Ese código que has puesto se ejecuta en el servidor, con lo que, como mucho, podría devolver un usuario del servidor donde esté alojada la página. Si hay exploradores que devuelven algo correcto será porque hacen una trampa. En la msdn pone bien claro que si quieres algún dato del cliente tienes que usar HttpContext, que es donde se guarda en un servidor los datos del cliente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

My.User.Name retorna vacio

Publicado por Dan (2 intervenciones) el 25/10/2016 18:23:40
Gracias Nacho por tu respuesta,

Efectivamente asi le he hecho, pero pasa exactamente lo mismo, no hay ninguna diferencia.

1
2
3
4
5
6
7
8
Dim returndata As String
Dim msg As String
msg = "Usuario = "
 
Dim userName As String = HttpContext.Current.User.Identity.Name
 
Session("userName") = userName
Me.Response.Output.Write("<script>javascript:alert('" & msg & userName & "')</script>")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

My.User.Name retorna vacio

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 25/10/2016 21:09:54
Como te dije, dale una mirada a ASP.NET Indetity, membership fue reemplazado por Identity.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar