http://ltuttini.blogspot.com/2010/05/login-usando-password-con-hash.html
me paresio bastante interesante.. pero al momento de llevarlo a mi aplicacio tengo probblemas con UsuarioEntity:
genere una clase llamada :
Código
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("Data Source=ENZZO-PC\\SQLEXPRESS;Initial Catalog=ISW;Integrated Security=True")) { conn.Open(); 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) { usuario.Nombre = nombre; usuario.Apellido = apellido; usuario.NombreLogin = nombreLogin; usuario.Password = password; return Insert(usuario); } public static UsuarioEntity Insert(UsuarioEntity usuario) { string sql = @"INSERT INTO Usuarios ( Nombre ,Apellido ,NombreLogin ,Password) VALUES ( @Nombre, @Apellido, @NombreLogin, @Password) SELECT SCOPE_IDENTITY()"; using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString())) { 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); conn.Open(); usuario.Id = Convert.ToInt32(command.ExecuteScalar()); return usuario; } } internal class Helper { public static string EncodePassword(string originalPassword) { MD5 md5 = MD5.Create(); byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(originalPassword); byte[] hash = md5.ComputeHash(inputBytes); return BitConverter.ToString(hash).Replace("-", ""); } } }