Ich denke, meine Frage ist ähnlich wie C#: how to check if a MySqlConnection is using SSL or not?, aber leider hat es keine guten Antworten, weil es vielleicht unklar ist. Also hier ist mein nehmen:Überprüfen Sie, ob MySqlConnection SSL verwendet
ich eine neue Verbindung erstellt haben:
var connection = new MySqlConnection("Data Source=example.com;Port=3306;Database=Foo;User Id=root;Password=foo;SSL Mode=Required");
Wie überprüfe ich es SSL verwendet, ist es so etwas wie connection.IsOverSSL
?
Edit:
Ich versuchte SHOW SESSION STATUS LIKE 'Ssl_cipher'
verwenden, aber das gibt mir Ssl_cipher
auch wenn SSL Mode=Required
:
Der Code, den ich verwenden ist:
var connection = new MySqlConnection(ConfigurationManager.AppSettings["Test"]);
connection.Open();
var command = new MySqlCommand("SHOW SESSION STATUS LIKE \'Ssl_cipher\'", connection);
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader.GetString(0));
}
Nach https://dev.mysql.com/doc/refman/5.7/en/using-encrypted-connections.html, sollte es geben mich Ssl_cipher | DHE-RSA-AES128-GCM-SHA256
Ich denke, es gibt keine bestimmte Eigenschaft zur Verfügung gestellt, um zu überprüfen, ob 'MySqlConnection' SSL verwendet. Der nächste Weg besteht darin, den Netzwerkverkehr mit einem externen Tool zu erfassen, wie in diesen ähnlichen Problemen beschrieben: https://stackoverflow.com/questions/42703027/how-determine-if-using-ssl-in-a-mysql-connection & https://stackoverflow.com/questions/14389921/how-to-check-whether-a-mysql-connection-is-ssl-encrypted. –