Conexión de C# con Postgres

Estoy intentando hacer un proyecto que utilice una BBDD de Postgres y por el momento estoy atascado.

Estoy trabajando con Monodevelop, con C#. El caso es que utilizo la siguiente cadena de conexión
conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=postgres;Password=mipass;Database=test");


Y al ejecutar me sale como error:
Sin conexion por Npgsql.NpgsqlException:
la autentificación «password» falló para el usuario «postgres»
Severity: FATAL
Code: 28000


Vale, según eso es que el password no es correcto. Pero es que el password y el usuario postgres los pruebo desde consola y funcionan sin problema.
Partiendo de que la cadena de conexión está bien (nunca he tocado C#), se me ocurre que pueda haber algún problema con el fichero pg_hba.conf . Quizás tengas que cambiar el tipo de autenticación para el usuario postgres (no se como lo tendrás, pero prueba cambiar al tipo 'password' (sin las comillas)) .
Pues lo tengo como se instala, ahí nunca he tocado
# Database administrative login by UNIX sockets
local   all         postgres                          ident sameuser

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               ident sameuser
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5

He cambiado tanto a "password", como a "trust" sin resultado
¿Y creando un usuario nuevo que no sea postgres? ¿Has probado?
Prueba con localhost en lugar de 127.0.0.1

Si no funciona, prueba a habilitar el acceso por TCP en postgresql.conf con:
listen_addresses = '*'
He creado otro usuario. PUedo hacer login con él desde consola pero desde el programa...nada

También he probado a cambiar localhost, a poner lo del listen_adresses...nada

Sinceramente, no lo entiendo.


Gracias

EDITO: No sé si ha sido un poco de todo, pero he creado 2 usuarios más y el último me ha funcionado perfectamente también desde C#. Lo que no me puedo explicar es que los anteriores también me iban en consola.

Muchas gracias a todos
Seguramente fuese porque no habías reiniciado el servicio tras cambiar la config.
6 respuestas