"Не удалось войти в систему для пользователя...", когда я вхожу в онлайн-сервер SQL Server с использованием C#?
У меня есть база данных на хост-сервере, к которой я пытаюсь подключиться, используя C# SqlConnection
учебный класс. Я могу без проблем войти на сервер через SQL Server Management Studio, используя аутентификацию SQL Server.
Мой код инициализации выглядит так:
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 $'.
ExceptionType: System.Data.SqlClient.SqlException
Трассировки стекав System.Data.SqlClient.SqlInternalConnectionTds..ctor(идентификатор DbConnectionPoolIdentity и т. д. и т. д.
где х в имени пользователя являются числами. Кроме того, это не имя пользователя, которое я использую в строке подключения.
Я попытался добавить trust_connection=true, а также интегрированную безопасность = true, но безуспешно.
Когда я вхожу на сервер через SQL Server Management Studio и открываю свойства в Security -> Logins -> MyUserName, я отмечаю, что длина пароля не совпадает с той, которую я использую для входа в SSMS. У меня нет разрешения менять его через SSMS, только через хост smarterasp.net.
Любые пожелания приветствуются!
1 ответ
Спасибо за комментарии. Я переместил учетные данные в экземпляр SqlCredentials, так как
var credentials = new SqlCredentials(userName, password);
using (var con = new SqlConnection(ConnectionString, credentials){
con.Open();
}
где пароль - только для чтения SecureString(). Это сделало трюк!