/// <summary> /// Creates and opens a Winscp session based on a connection string. /// </summary> /// <param name="connectionStringOrName">The connection string or the name of a connection string.</param> public static Session Open(this Session session, string connectionStringOrName) { var csi = new ConnStringInfo(connectionStringOrName); if (string.IsNullOrWhiteSpace(session.ExecutablePath)) { var exe = csi["exe"] ?? csi["exepath"]; if (!string.IsNullOrWhiteSpace(exe)) { session.ExecutablePath = exe; } } var o = new SessionOptions { HostName = csi["host"] ?? csi["hostname"], UserName = csi["username"] ?? csi["user"], Password = csi["password"] ?? csi["pw"], SshHostKeyFingerprint = csi["hostkey"] ?? csi["HostKeyFingerprint"], }; var port = csi["port"] ?? csi["portnumber"]; if (!string.IsNullOrWhiteSpace(port)) { o.PortNumber = int.Parse(port); } session.Open(o); return(session); }
public void TestConnStringInfo() { const string connString = @"host=localhost;user=bob;pw=goatman;anything=everything"; var info = new ConnStringInfo(connString); Assert.AreEqual("localhost", info["host"]); Assert.AreEqual("bob", info["user"]); Assert.AreEqual("goatman", info["pw"]); Assert.AreEqual("everything", info["anything"]); }