Retroceder   Foros del Web > Programación para sitios web > .NET > web forms

Respuesta
 
Herramientas Desplegado
Antiguo 09-oct-2006, 12:14   #1 (permalink)
GaRcY está en el buen camino
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 181
Recordar usuarios

Saludos, tengo una aplicación en asp.net y uso la autentificacion basada en formularios. Mi idea es que el usuario se logea por medio de una pagina de login la cual ejecuto el formsautentication.setauthcookie(nombre,true).

Pues bien, quisiera recordar a ese usuario cuando éste pone que quiere ser recordado y cierra el explorador y otro día vuelve a entrar en la página.

No se si lo estaré haciendo bien, pero cuando el quiere que le recuerde, le pongo que la cookie sea persistente (true) y despues cuando vuelve a entrar, en el global.asax en el evento Session_Start condiciono el estar logeado con (if User.Identity.IsAuthenticated then)

Pues bien, de manera local, es decir cuando lo pruebo en el ordenador de casa, siempre me recuerda, pero cuando lo subo al servidor, no me recuerda y tengo que volver a logearme. ¿estoy haciendo algo mal o es el servidor que no me deja?
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.
GaRcY está desconectado   Responder Citando
Antiguo 09-oct-2006, 14:10   #2 (permalink)
dvelazquez no se puede cailificar en este momento
 
Fecha de Ingreso: agosto-2006
Mensajes: 96
Compañero, hace poco tiempo le hice un tutorial a un forero.

Te pongo el link:

http://www.webprogramacion.com/registro.aspx?id=77

Espero que te ayude (está hecho en C#, si tienes alguna duda, contacta conmigo a través de este hilo del foro).

Saludos.

Última edición por dvelazquez; 08-ago-2007 a las 02:34.
dvelazquez está desconectado   Responder Citando
Antiguo 09-oct-2006, 16:42   #3 (permalink)
GaRcY está en el buen camino
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 181
Pero hacer ésto, ya me inicia la sesión en los web forms, es decir si luego puedo usar el user.identity.isauthenticated?
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.
GaRcY está desconectado   Responder Citando
Antiguo 10-oct-2006, 06:44   #4 (permalink)
GaRcY está en el buen camino
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 181
He hecho esto que me dices y no funciona, te dejo lo que ejecuto en el global.asax (esto lo ejecuto en el session_start):

Dim mensaje, usuario, n_usuario As String
Dim Resultado, id, rol As Integer
Dim Tkt As FormsAuthenticationTicket
Dim fecha_ultima_v As DateTime
ConF = New OdbcConnection(ConfigurationSettings.AppSettings(" CConexionF"))
If Not IsDBNull(HttpContext.Current.User) Then
If HttpContext.Current.User.Identity.AuthenticationTy pe = "Forms" Then
Tkt = FormsAuthentication.Decrypt(Request.Cookies(FormsA uthentication.FormsCookieName).Value)
n_usuario = Tkt.Name
sql = "SELECT id_usuario,nombre,id_rol,fecha_ultima_v FROM usuarios WHERE n_usuario=?"
Cmd = New OdbcCommand(sql, ConF)
Cmd.Parameters.Add(New OdbcParameter("@N_usuario", OdbcType.VarChar, 30)).Value = n_usuario
Try
da = New OdbcDataAdapter(Cmd)
da.Fill(ds, "usuario")
Catch ex As Exception
Response.Write(ex)
End Try
'Si los datos de la cookie concuerdan con el numero de usuario de la base,
'le valido, si no, le borro la cookie.
Resultado = ds.Tables("usuario").Rows.Count
If Resultado = 0 Then
ds.Tables("usuario").Rows.Clear()
'Response.Redirect("cerrarSesion.aspx")
Else
id = ds.Tables("usuario").Rows(0)("id_usuario")
usuario = ds.Tables("usuario").Rows(0)("nombre")
rol = ds.Tables("usuario").Rows(0)("id_rol")
fecha_ultima_v = ds.Tables("usuario").Rows(0)("fecha_ultima_v")
ds.Tables("usuario").Rows.Clear()
Actualiza_Ultima_Visita()
Session("id") = id
Session("login") = usuario
Session("rol") = rol
Session("UltimaV") = fecha_ultima_v
End If
End If
End If

Mi problema esque no me recuerda al usuario.
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.
GaRcY está desconectado   Responder Citando
Antiguo 10-oct-2006, 10:46   #5 (permalink)
GaRcY está en el buen camino
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 181
Solo quiero saber si la cookie persistente que creas con el forms.authentication.setauthcookie(nombre,true), sirve para recordar a los usuarios cuando estos cierran el explorador y otro día vuelven a entrar en la página. Por que mi problema esque la cookie me fijo que está en el disco duro pero por alguna razón no me recuerda al usuario.
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.
GaRcY está desconectado   Responder Citando
Antiguo 10-oct-2006, 10:53   #6 (permalink)
dvelazquez no se puede cailificar en este momento
 
Fecha de Ingreso: agosto-2006
Mensajes: 96
Yo en principio la cookie no la hago persistente en el ejemplo.

En esta línea:
tkt = new FormsAuthenticationTicket(1, sNombre, DateTime.Now, DateTime.Now.AddMinutes(30), false, i + "");

puede verse.

Para que fuera persistente, habría que poner, donde pone false, true.

No la hago persistente porque no me interesa que se pueda entrar sin contraseña (recordándola).

No he tenido tiempo de mirar tu ejemplo para ver donde estaba el fallo, pero en principio el código que te he pasado funciona, porque está probado. Repasalo a ver si encuentras el error compañero.

Un saludo y disculpa la tardanza para contestar.
__________________
Artículos sobre programación - www.webprogramacion.com
dvelazquez está desconectado   Responder Citando
Antiguo 11-oct-2006, 07:25   #7 (permalink)
GaRcY está en el buen camino
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 181
A ver si se me entiende, lo que quiero es lo siguiente:
Yo entro con el explorador al foro, entonces me logeo, y selecciono lo de recordarme. Luego cierro el explorador y pasado el tiempo de sesion y de expiración de la cookie (20min), entro en el foro, en éste momento quiero saber como recuerdo a ese usuario.
Yo utilizo en el global.asax lo del user.indentity.isauthenticated y en el ordenador local me funciona, pero cuando lo subo al servidor, no me recuerda. ¿estoy haciendolo mal?

En resumen que quiero recordar al usuario cuando éste me lo indica.
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.
GaRcY está desconectado   Responder Citando
Antiguo 12-oct-2006, 09:30   #8 (permalink)
GaRcY está en el buen camino
 
Fecha de Ingreso: octubre-2003
Ubicación: Pucela
Mensajes: 181
¿Nadie me puede ayudar?

Sólo quiero saber como recordar a un usuario entre sesión y sesión
__________________
El pasado ya ha pasado y el futuro todavía no ha pasado, es decir, vive el presente.
GaRcY está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 21:33.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93