asp.net Npgsql.PostgresException:'28P01:即使使用正确的密码,密码身份验证也无法使用

nwwlzxa7  于 2023-01-14  发布在  .NET
关注(0)|答案(1)|浏览(812)

我在通过www.example.com应用程序连接到远程数据库时遇到了问题Asp.net。问题是,当我通过pgAdmin使用相同的凭据时,它工作正常。一切似乎都归结为web.config中的这一行:

<add name="name" providerName="Npgsql" connectionString="Server=127.0.0.1;Port=5432;Database=database;User Id=user;Password=password;Integrated Security=true;Pooling=true;" />

当然,我在这里更改了名称、数据库、用户ID和密码,因为这是保密的。我使用putty绕过防火墙,它对我的同事来说工作得很好。下面是我得到的错误:

我和我的同事检查了很多次密码,我们的密码是一样的。这个密码和我在pgAdmin中使用的密码也是一样的。哦,即使我不在后台运行我的pgAdmin,而是单独运行我的asp.net应用程序,我仍然会收到错误消息(以防万一可能会有端口冲突与2个相同的端口试图连接一次)。腻子似乎是无用的,在我的情况下,即使它和我的同事有相同的配置(为他们工作的配置)。
有人知道我该怎么解决这个问题吗?

kxkpmulp

kxkpmulp1#

如果要指定用户名和密码...则应删除:
集成安全性=真;
“身份”可以不同....并且可能正在更改您指定的用户。
集成安全性(在Windows下)意味着“使用连接到正在运行代码的进程的标识”。
大多数时候,当你登录到你的windows机器,身份是“你”,如果你拉出“Windows服务”,你可以看到一些偏离这个一般规则。

https://www.connectionstrings.com/postgresql/
它涉及到一些概念。
您会注意到(在我刚才提到的URL处),“集成安全性"示例(见下文)不包含用户名或密码。

Using windows security
Server=127.0.0.1;Port=5432;Database=myDataBase;Integrated Security=true;

相关问题