/// <summary> /// Implementación de la lógina de Login. /// </summary> public ResultadoLogin LoginUsuario(string usuario, string contrasenia) { string contraseniaSalt = ObtenerSal(usuario); string contraseniaBcrypt = ""; if (!String.IsNullOrWhiteSpace(contraseniaSalt)) { contraseniaBcrypt = BCrypt.HashPassword(contrasenia, contraseniaSalt); } SqlCommand loginCmd = new SqlCommand(loginQuery); loginCmd.Parameters.AddWithValue("@usuario", usuario); loginCmd.Parameters.AddWithValue("@contrasenia", contraseniaBcrypt); // Obtiene el resultado object resultado = OperacionSQL.ExecuteScalar(cadenaConexion, loginCmd); // Si el resultado es nulo, no existe el usuario. if (resultado == null) { return(new ResultadoLogin(ResultadoLogin.TipoResultado.DENEGADO, null)); } else if (resultado.Equals(Operacion.ERROR)) { return(new ResultadoLogin(ResultadoLogin.TipoResultado.ERROR, null)); } { // Se le asigna la ID de la base de datos al usuario creado. Usuario creado = new Usuario(usuario, contrasenia, contraseniaBcrypt); creado.ID = BBDDPrograma.ObtenerIDUsuario(creado); return(new ResultadoLogin(ResultadoLogin.TipoResultado.ACEPTADO, creado)); } }
/// <summary> /// Implementación de la lógina de Registro. /// </summary> public ResultadoRegistro RegistrarUsuario(string usuario, string contrasenia) { if (ExisteUsuario(usuario)) { return(new ResultadoRegistro(ResultadoRegistro.TipoResultado.DUPLICADO, null)); } else { // Generar sal string contraseniaSalt = BCrypt.GenerateSalt(); //mySalt == "$2a$10$rBV2JDeWW3.vKyeQcM8fFO" string contraseniaBcrypt = BCrypt.HashPassword(contrasenia, contraseniaSalt); //myHash == "$2a$10$rBV2JDeWW3.vKyeQcM8fFO4777l4bVeQgDL6VIkxqlzQ7TCalQvla" bool doesPasswordMatch = BCrypt.CheckPassword(contrasenia, contraseniaBcrypt); SqlCommand registrarCmd = new SqlCommand(registrarUsuarioQuery); registrarCmd.Parameters.AddWithValue("@usuario", usuario); registrarCmd.Parameters.AddWithValue("@contrasenia", contraseniaBcrypt); registrarCmd.Parameters.AddWithValue("@contrasenia_salt", contraseniaSalt); // Obtiene el resultado int resultadoFilasSQL = OperacionSQL.ExecuteNonQuery(cadenaConexion, registrarCmd); // Si es distinto mayor a 0, se habrá registrado el usuario if (resultadoFilasSQL > 0) { Usuario creado = new Usuario(usuario, contrasenia, contraseniaBcrypt); creado.ID = BBDDPrograma.ObtenerIDUsuario(creado); return(new ResultadoRegistro(ResultadoRegistro.TipoResultado.ACEPTADO, creado)); } else { return(new ResultadoRegistro(ResultadoRegistro.TipoResultado.ERROR_CONEXION, null)); } } }