فهرست منبع

Bug fix: Session.ParseUrl cannot accept fingerprint parameter for sessions over TLS

Source commit: bb5add335a44178102b7d626840ffc9921837777
Martin Prikryl 5 سال پیش
والد
کامیت
5e6932f19c
1فایلهای تغییر یافته به همراه16 افزوده شده و 1 حذف شده
  1. 16 1
      dotnet/SessionOptions.cs

+ 16 - 1
dotnet/SessionOptions.cs

@@ -227,7 +227,22 @@ namespace WinSCP
                     const string RawSettingsPrefix = "x-";
                     const string RawSettingsPrefix = "x-";
                     if (parameterName.Equals("fingerprint", StringComparison.OrdinalIgnoreCase))
                     if (parameterName.Equals("fingerprint", StringComparison.OrdinalIgnoreCase))
                     {
                     {
-                        SshHostKeyFingerprint = parameter;
+                        switch (Protocol)
+                        {
+                            case Protocol.Sftp:
+                            case Protocol.Scp:
+                                SshHostKeyFingerprint = parameter;
+                                break;
+
+                            case Protocol.Ftp:
+                            case Protocol.Webdav:
+                            case Protocol.S3:
+                                TlsHostCertificateFingerprint = parameter;
+                                break;
+
+                            default:
+                                throw new ArgumentException();
+                        }
                     }
                     }
                     else if (parameterName.StartsWith(RawSettingsPrefix, StringComparison.OrdinalIgnoreCase))
                     else if (parameterName.StartsWith(RawSettingsPrefix, StringComparison.OrdinalIgnoreCase))
                     {
                     {