Browse Source

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

Source commit: bb5add335a44178102b7d626840ffc9921837777
Martin Prikryl 5 years ago
parent
commit
5e6932f19c
1 changed files with 16 additions and 1 deletions
  1. 16 1
      dotnet/SessionOptions.cs

+ 16 - 1
dotnet/SessionOptions.cs

@@ -227,7 +227,22 @@ namespace WinSCP
                     const string RawSettingsPrefix = "x-";
                     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))
                     {