使用连接字符串localhost \ SQLEXPRESS的用户的C#登录失败

时间:2018-06-21 15:35:16

标签: c# sql-server client connection-string sqldatasource

将客户端PC上的应用程序连接到服务器PC上存储的数据库(DESKTOP-F419755)时出现错误消息。我尝试使用“ localhost \ SQLEXPRESS”和“。\ SQLEXPRESS”,但在尝试打开连接时收到相同的“用户admin登录失败...”消息。但是,当我使用“ DESKTOP-F419755 \ SQLEXPRESS”作为连接字符串时,它在客户端PC上运行良好。

因此,客户端PC如何在不告知服务器PC名称的情况下连接到服务器PC的数据库。

我的完整连接字符串为 “数据源= localhost \ SQLEXPRESS;初始目录=数据;用户ID = admin;密码= adminPass”

注意: 我可以在PC Server(Ofcourse)上使用“ localhost \ SQLEXPRESS”,“。\ SQLEXPRESS”和“ DESKTOP-F419755 \ SQLEXPRESS”。

2 个答案:

答案 0 :(得分:0)

  

因此,客户端PC如何无需通知即可连接到服务器PC的数据库   服务器PC名称

我假设您出于某种原因想要以某种方式屏蔽配置文件中主机的身份。您可以直接在连接字符串中使用IP地址,也可以在文件中添加主机条目:C:\ Windows \ System32 \ Drivers \ etc \ hosts

DESKTOP-F419755服务器主机

并使用:

  

数据源= serverhost \ SQLEXPRESS;初始目录=数据;用户   ID = admin; Password = adminPass

配置文件是否向用户公开?您到底想完成什么?

如果您的目标是简单地隐藏计算机名称,那么尽管完成了相对一半的工作,但这仍会完成。如果您最关心的是安全性,则可以从代码内部的某个位置提取主机名,然后在代码中生成连接对象,因此不需要存储在配置文件中的连接字符串。

这一切都取决于您要在此处完成的工作,您也可以加密配置文件中的信息,或者将主机名完全存储在其他位置(注册表等)。

答案 1 :(得分:0)

不可能在客户端服务器位置自动执行连接字符串。但是,您可以使用其他方法来存储要更改的连接信息,而无需重新安装该应用程序。

  1. 在具有连接字符串的位置中使用文本文件。确保出于安全目的对信息进行加密。

希望您得到了答案。