Principales respuestas
UPDATE A PASSWORD YA GUARDADO CON HASH SHA1

Pregunta
-
Que tal a todos he implementado este método en mi aplicación uso c# y asp.net.
El método lo seguí conforme a estas dos publicaciones:
http://ltuttini.blogspot.com/2010/05/login-usando-password-con-hash.html
Ya funciona a la perfección todo, pero ahora lo que no puedo con ello y ya llevo rato tratando de implementar es el update a la tabla y que contenga el hash.
Tengo una clase llamada Login.
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Data.SqlClient; using System.Web.Security; using System.Configuration; using System.Text; namespace DataAccess { public static class LoginService { public static bool Autenticar(string usuario, string password) { string sql = @"SELECT COUNT(*) FROM usuarios WHERE NombreLogin = @nombre AND Password = @password"; using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConsultaConnectionString"].ToString())) { conn.Open(); SqlCommand command = new SqlCommand(sql, conn); command.Parameters.AddWithValue("@nombre", usuario); string hash = Helper.EncodePassword(string.Concat(usuario, password)); command.Parameters.AddWithValue("@password", hash); int count = Convert.ToInt32(command.ExecuteScalar()); if (count == 0) return false; else return true; } } public static UsuarioEntity Insert(string nombre, string apellido, string nombreLogin, string password, int Idequipo, int Idacceso, int Idcliente) { UsuarioEntity usuario = new UsuarioEntity(); usuario.Nombre = nombre; usuario.Apellido = apellido; usuario.NombreLogin = nombreLogin; usuario.Password = password; usuario.Idequipo = Idequipo; usuario.Idacceso = Idacceso; usuario.Idcliente = Idcliente; return Insert(usuario); } public static UsuarioEntity Insert(UsuarioEntity usuario) { string sql = @"INSERT INTO usuarios ( Nombre ,Apellido ,NombreLogin ,Password ,Idequipo ,Idacceso ,Idcliente) VALUES ( @Nombre, @Apellido, @NombreLogin, @Password, @Idequipo, @Idacceso, @Idcliente) SELECT SCOPE_IDENTITY()"; using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConsultaConnectionString"].ToString())) { SqlCommand command = new SqlCommand(sql, conn); command.Parameters.AddWithValue("Nombre", usuario.Nombre); command.Parameters.AddWithValue("Apellido", usuario.Apellido); command.Parameters.AddWithValue("NombreLogin", usuario.NombreLogin); string password = Helper.EncodePassword(string.Concat(usuario.NombreLogin, usuario.Password)); command.Parameters.AddWithValue("Password", password); command.Parameters.AddWithValue("Idequipo", usuario.Idequipo); command.Parameters.AddWithValue("Idacceso", usuario.Idacceso); command.Parameters.AddWithValue("Idcliente", usuario.Idcliente); conn.Open(); usuario.Id = Convert.ToInt32(command.ExecuteScalar()); return usuario; } } public static DataTable prConsultaUsuario(string usuario, string password) { string sql = @"SELECT Nombre, IdUsuario, Idequipo, Idacceso FROM usuarios WHERE NombreLogin = @NombreLogin AND Password = @Password"; using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConsultaConnectionString"].ToString())) { SqlCommand command = new SqlCommand(sql, conn); command.Parameters.AddWithValue("@NombreLogin", usuario); string hash = Helper.EncodePassword(string.Concat(usuario, password)); command.Parameters.AddWithValue("@Password", hash); conn.Open(); SqlDataAdapter daAdaptador = new SqlDataAdapter(command); DataTable dtDatos = new DataTable(); daAdaptador.Fill(dtDatos); return dtDatos; } } } }
De antemano muchas gracias.
Hugo Damian
Respuestas
-
Hola Hugo Damian:
Ya sabes engancharte a la base de datos, ya sabes generar un hash.
Solo tienes que hacer una sentencia "Update usuarios set Password = @password where nombreUsuario = @nombreLogin;" o "Update usuarios set Password = @Password where idUsuario = @idUsuario;".
Como supongo que nombreLogin será único, valdrá de cualquiera de las dos formas.
Luego ejecutas mediante command.ExecuteNonQuery() y ya la tienes.
Update Ado.Net
http://elguille.info/net/adonet/sql_instrucciones_update.aspx
- Propuesto como respuesta Sergio ParraModerator viernes, 19 de abril de 2019 10:26
- Marcado como respuesta Hugo Damian viernes, 19 de abril de 2019 19:55
Todas las respuestas
-
Hola Hugo Damian:
Ya sabes engancharte a la base de datos, ya sabes generar un hash.
Solo tienes que hacer una sentencia "Update usuarios set Password = @password where nombreUsuario = @nombreLogin;" o "Update usuarios set Password = @Password where idUsuario = @idUsuario;".
Como supongo que nombreLogin será único, valdrá de cualquiera de las dos formas.
Luego ejecutas mediante command.ExecuteNonQuery() y ya la tienes.
Update Ado.Net
http://elguille.info/net/adonet/sql_instrucciones_update.aspx
- Propuesto como respuesta Sergio ParraModerator viernes, 19 de abril de 2019 10:26
- Marcado como respuesta Hugo Damian viernes, 19 de abril de 2019 19:55
-