0

我在尝试使用 C#SqlConnection类连接的托管服务器上有一个数据库。我可以使用 SQL Server 身份验证通过 SQL Server Management Studio 登录到服务器,没有问题。

我的启动代码如下所示:

public static string ConnectionString { get; set; }

public Constructor() {
    ConnectionString = @"Data source=SQL6002.site4now.net;Initial Catalog=myDatabase;User Id=MyUserName;Password=MyPassword;";
}

其中数据库名称、用户名和密码被替换为正确的值。连接代码如下所示:

using (SqlConnection con = new SqlConnection(ConnectionString))
{
    con.Open();
    ...
}

当我使用本地数据库连接字符串时,此代码有效。但是,当我使用上面的连接字符串时,我得到了错误

发生了错误。用户“IFC\WINxxxx$”登录失败。

异常类型:System.Data.SqlClient.SqlException
StackTrace

在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 标识等等等。

其中用户名中的 x 是数字。此外,这不是我在连接字符串中使用的用户名。

我尝试添加trusted_connection=true,并且还集成了security=true,但没有成功。

当我通过 SQL Server Management Studio 登录服务器并在 Security -> Logins -> MyUserName 中打开属性时,我注意到密码的长度与用于登录 SSMS 的密码长度不同。我无权通过 SSMS 更改它,只能通过主机 smarterasp.net 进行更改。

非常欢迎任何输入!

4

1 回答 1

0

感谢您的评论。我将凭据移动到 SqlCredentials 的实例中,如

var credentials = new SqlCredentials(userName, password);
using (var con = new SqlConnection(ConnectionString, credentials){
    con.Open();
}

其中密码是只读的 SecureString()。那成功了!

于 2017-12-07T20:11:34.983 回答