小编jan*_*nan的帖子

使用 TLS 1.1 连接到 MySQL 数据库时升级到 .NET 6 后出现 SSL 身份验证错误

我有一个版本为1.1MySQL的数据库。我使用以下代码片段在我的应用程序中建立连接:5.7.19TLS.NET Core 3.1

\n
string connStr = "server=Myserver;user id=myuser;password=my password;database=db;SslMode=Required;SslCa=D:\\\\server-ca.pem;SslCert=D:\\\\client-cert.pem;SslKey=D:\\\\client-key.pem;";\n\ntry\n{\n    using (MySqlConnection connection = new MySqlConnection(connStr))\n    {\n        connection.Open();\n        connection.Close();\n    }\n}\ncatch (Exception ex)\n{\n    // handle the exception\n}\n\n\n
Run Code Online (Sandbox Code Playgroud)\n

此代码在 中运行良好.NET Core 3.1,但升级到 后.NET 6,它会抛出以下异常:

\n
\n

MySqlConnector.MySqlException(0x80004005): SSL 身份验证错误\\ r\\ n-- - > System.Security.Authentication.AuthenticationException: 身份验证失败,请参阅内部异常。\\r\\ n-- - > System.ComponentModel.Win32Exception (0x8009030E):System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCH_CREDENTIALS *) 的 System.Net.SSPIWrapper.AcquireCredentialsHandle(ISSPIInterface secModule, String package, CredentialUseintent, SCH_CREDENTIALS * scc) 的安全包中没有可用的凭据。 secureCredential)在System.Net.Security.SslStreamPal.AcquireCredentialsHandleSchCredentials(SslStreamCertificateContext证书Context,SslProtocols协议,EncryptionPolicy策略,Boolean isServer)在System.Net.Security.SslStreamPal.AcquireCredentialsHandle(SslStreamCertificateContext证书Context,SslProtocols协议,EncryptionPolicy策略,布尔值 isServer) -- - 内部异常堆栈跟踪结束-- - 在 System.Net.Security.SslStreamPal.AcquireCredentialsHandle(SslStreamCertificateContextcertificateContext、SslProtocols …

c# ssl tls1.1 asp.net-core-3.1 asp.net-core-6.0

5
推荐指数
1
解决办法
1306
查看次数

标签 统计

asp.net-core-3.1 ×1

asp.net-core-6.0 ×1

c# ×1

ssl ×1

tls1.1 ×1