Tema destacado: Suscripción al boletín mensual de elhacker.net
Autor
|
Tema: [Solucionado]Manejo de Sesiones en C# Form (Leído 2,567 veces)
|
.:Snifer:.
Desconectado
Mensajes: 74
|
Hola como estan queria hacer una consulta acerca del manejo de sesiones en C#, estoy haciendo un sistema, con consultas atribuidas ahora mi pregunta es cmo llego a hacer el manejo de sesiones.
tengo la tabla con 3 datos nombre, contraseña, ID.
Id= Seria el identificador para otorgar el permiso.
Porfavor alguna guia para que pueda ubicarme gracias.
|
|
|
|
« Última modificación: 20 Enero 2011, 16:50 por .:Snifer:. »
|
En línea
|
|
|
|
|
|
|
|
|
[D4N93R]
|
Ah ok,
Bueno, crea alguna clase estática en donde tengas los datos de la sesión actual, y algunos métodos para manejar todo.
Es una buena vía.
Un saludo.
|
|
|
|
|
En línea
|
|
|
|
.:Snifer:.
Desconectado
Mensajes: 74
|
Si estaba viendo la manera de hacerlo con la base de datos otorgando permisos directamente.. Es mas factible? Saludos 
|
|
|
|
|
En línea
|
|
|
|
|
DonVidela
|
Yo lo que he hecho es muy simple, hice un login y si el login era correcto me habría otro form con todas las opciones que quieras xD sino, simplemente no hacia nada, y si tenia una X cantidad de errores entonces me cerraba el programa por completo... no se si es lo que buscas xd , saludos.
|
|
|
|
|
En línea
|
Aprendiendo: Java , C# , pl/sql, mysql , sql server, PHP , Access, JSF, Facelets, JSP, CakePHP, JQuery http://pablovidela.wordpress.com
|
|
|
.:Snifer:.
Desconectado
Mensajes: 74
|
Bueno eso de hacerlo en el form si lo hice es mas facil xD user=admin & pass=123 En el mismo formulario lo que ando viendo es como hacerlo con la BD. Saludos 
|
|
|
|
|
En línea
|
|
|
|
|
[D4N93R]
|
Les explico lo que comunmente se hace:
1) Formulario de login 2) Validas los valores normalmente contra una base de datos 3) Si son correctos, no solo abres una ventana o das acceso, sino que además: 4) Guardas un log para las auditorías. 5) Almacenas en memoria al menos el ID del usuario, para la hora de realizar alguna operación que la requieras no estar haciendo consultas a la Base de Datos, sino simplemente sacarlo de la una propiedad, por ejemplo.
Creo que no se me olvida más nada.
Un saludo!
|
|
|
|
|
En línea
|
|
|
|
.:Snifer:.
Desconectado
Mensajes: 74
|
Bueno chicos gracias por las ideas... y soluciones lo pude solucionar. Buscando un poco entre los codigos que tengo guardados, en mi Wiki ... Segun el dato que tengo es del 2006 pero aun funciona acabo de hacer la prueba, autor mig16 segun los datos using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.Data.SqlClient; namespace LoginFC { public static class LoginFC { public static bool Login(string user, string password, string tabla,string tablaLogin, string tablaPassword) { //Creamos una instancia de conexion (cambien sus datos obviamente) SqlConnection con = new SqlConnection("Server = (local); Database = Facturacion;User = sa; Password = 123456"); bool correct = false; //Este bolleano nos indicara si el login es correcto MD5CryptoServiceProvider encriptador = new MD5CryptoServiceProvider(); /*nstancia de encriptador en MD5*/ byte[] bs = Encoding.UTF8.GetBytes(password); //obtenemos los bytes del password bs = encriptador.ComputeHash(bs);//los ciframos string passHash = null; //Este sera el hash md5 del password foreach (byte b in bs) //por cada byte lo agregamos al string passHash { passHash += b.ToString("x2").ToLower(); } password = passHash; //ya tenemos el password cifrado //este es el string que usaremos para el query de la base de datos string query = "select " + tablaLogin + ", " + tablaPassword + " from "+tabla+" where " + tablaLogin + " = '" + user + "'"; con.Open(); //Abrimos la conexion SqlCommand cmd = new SqlCommand(query,con); //Creamos un comando de SQL SqlDataReader rdr = cmd.ExecuteReader(); //Creamos un reader y ejecutamos el comando while (rdr.Read()) { string log = rdr.GetValue(0).ToString(); string pass = rdr.GetValue(1).ToString(); if (user == log && password == pass) //si el login y password es = entonces es correcto { correct = true; break; //rompemos el ciclo while } } return correct; //regresamos el resultado } } } Algo para salir del apuro pero sirve, por ahora. Saludos 
|
|
|
|
« Última modificación: 20 Enero 2011, 16:52 por .:Snifer:. »
|
En línea
|
|
|
|
|
|