Laden...

ConnectionString wird durch Connection.Open() abgeschnitten

Erstellt von Ornithopter vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.670 Views
O
Ornithopter Themenstarter:in
9 Beiträge seit 2017
vor 6 Jahren
ConnectionString wird durch Connection.Open() abgeschnitten

verwendetes Datenbanksystem: <MySql>

Durch das Öffnen einer Connection wird beim ConnectionString das Passwort abgeschnitten:


using MySql.Data.MySqlClient;
using System.Diagnostics;

namespace LostPasswordExample
{
    public class LostPasswordExample
    {
        public void ShowExample()
        {
            string connectionString = "server=x.x.x.x;user=test;database=test;password=test;";
            string dataBaseName = "test";

            MySqlConnection mySqlConnection = new MySqlConnection(connectionString);

            MySqlCommand mySqlCommand = mySqlConnection.CreateCommand();
            mySqlCommand.CommandText = "SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = '" + dataBaseName + "';";

            Debug.WriteLine("Before Connection.Open(): " + mySqlCommand.Connection.ConnectionString);
            mySqlCommand.Connection.Open();
            Debug.WriteLine("After Connection.Open(): " + mySqlCommand.Connection.ConnectionString);
            mySqlCommand.Connection.Close();
            Debug.WriteLine("After Connection.Close(): " + mySqlCommand.Connection.ConnectionString);
        }
    }
}

Ergibt folgende Ausgabe:


Before Connection.Open(): server=x.x.x.x;user id=test;database=test;password=test
After Connection.Open(): server=x.x.x.x;user id=test;database=test
After Connection.Close(): server=x.x.x.x;user id=test;database=test

Das Passwort wird also durch Connection.Open() abgeschnitten und bleibt auch nach Schließung der Verbindung verloren.

Warum passiert das? Wo liegt mein Denkfehler?

Wenn ich anschließend den ConnectionString verwende, führt dies zu einer Fehlermeldung:

Fehlermeldung:
MySqlException ist aufgetreten.

Ausnahme ausgelöst: "MySql.Data.MySqlClient.MySqlException" in MySql.Data.dll

Zusätzliche Informationen: Authentication to host 'x.x.x.x' for user 'test' using method 'mysql_native_password' failed with message: Benutzer

16.807 Beiträge seit 2008
vor 6 Jahren

Bitte vorher in die Doku schauen, dafür ist sie da.
Das ist nicht zu viel verlangt. Auch nicht von Dir. [Hinweis] Wie poste ich richtig?

SqlConnection.ConnectionString

The .NET Framework Data Provider for SQL Server does not persist or return the password in a connection string unless you set Persist Security Info to true.