public static bool TryGetDefaultConnectionInfo( ConnectionInfoStore store, StoredConnectionInfo[] excludedConnections, out StoredConnectionInfo connectionInfo) { return(RemoteTargetUtils.TryGetDefaultConnectionInfo(store, RetrieveMode.All, excludedConnections, out connectionInfo)); }
public static bool TryGetConnectionInfoOrDefault( ConnectionInfoStore store, string remoteTargetStringOrId, out StoredConnectionInfo connectionInfo) { return(RemoteTargetUtils.TryGetConnectionInfoOrDefault(store, remoteTargetStringOrId, RetrieveMode.All, out connectionInfo)); }
public static string ConnectionToDisplayName(StoredConnectionInfo storedConnectionInfo) { ConnectionInfo connectionInfo = (ConnectionInfo)storedConnectionInfo; string str = connectionInfo is PasswordConnectionInfo ? "Password" : "PrivateKey"; return(string.Format("{0} (username={1}, port={2}, authentication={3})", (object)connectionInfo.HostNameOrAddress, (object)connectionInfo.UserName, (object)connectionInfo.Port, (object)str)); }
public static bool TryGetConnectionInfoOrDefault( ConnectionInfoStore store, string remoteTargetStringOrId, RetrieveMode mode, out StoredConnectionInfo connectionInfo) { connectionInfo = (StoredConnectionInfo)null; if (string.IsNullOrWhiteSpace(remoteTargetStringOrId)) { return(RemoteTargetUtils.TryGetDefaultConnectionInfo(store, mode, new StoredConnectionInfo[0], out connectionInfo)); } RemoteTarget result1 = (RemoteTarget)null; int result2 = -1; if (RemoteTargetUtils.TryParseRemoteTarget(remoteTargetStringOrId, out result1)) { if (!store.TryGetById(result1.Id, mode, out connectionInfo)) { return(false); } } else { if (!int.TryParse(remoteTargetStringOrId, out result2)) { return(store.TryGetByName(remoteTargetStringOrId, out connectionInfo)); } if (!store.TryGetById(result2, out connectionInfo)) { return(false); } } return(true); }
public static bool TryGetConnectionInfoOrDefault( string remoteTargetStringOrId, RetrieveMode mode, out StoredConnectionInfo connectionInfo) { return(RemoteTargetUtils.TryGetConnectionInfoOrDefault(new ConnectionInfoStore(), remoteTargetStringOrId, mode, out connectionInfo)); }
public static SSHConnection GetSSHConnection(string name) { ConnectionInfoStore store = new ConnectionInfoStore(); ConnectionInfo connectionInfo = null; StoredConnectionInfo storedConnectionInfo = store.Connections.FirstOrDefault(connection => { return(name.Equals(SSHPortSupplier.GetFormattedSSHConnectionName((ConnectionInfo)connection), StringComparison.OrdinalIgnoreCase)); }); if (storedConnectionInfo != null) { connectionInfo = (ConnectionInfo)storedConnectionInfo; } if (connectionInfo == null) { IVsConnectionManager connectionManager = (IVsConnectionManager)ServiceProvider.GlobalProvider.GetService(typeof(IVsConnectionManager)); IConnectionManagerResult result; if (string.IsNullOrWhiteSpace(name)) { result = connectionManager.ShowDialog(); } else { string userName; string hostName; int atSignIndex = name.IndexOf('@'); if (atSignIndex > 0) { userName = name.Substring(0, atSignIndex); int hostNameStartPos = atSignIndex + 1; hostName = hostNameStartPos < name.Length ? name.Substring(hostNameStartPos) : StringResources.HostName_PlaceHolder; } else { userName = string.Format(CultureInfo.CurrentCulture, StringResources.UserName_PlaceHolder); hostName = name; } result = connectionManager.ShowDialog(new PasswordConnectionInfo(hostName, userName, new System.Security.SecureString())); } if ((result.DialogResult & ConnectionManagerDialogResult.Succeeded) == ConnectionManagerDialogResult.Succeeded) { // Retrieve the newly added connection store.Load(); connectionInfo = store.Connections.First(info => info.Id == result.StoredConnectionId); } } return(SSHHelper.CreateSSHConnectionFromConnectionInfo(connectionInfo)); }
public static string ConnectionToDisplayNameShort(StoredConnectionInfo storedConnectionInfo) { string platform = RemoteTargetUtils.ProcessorArchToPlatform(storedConnectionInfo.Properties.Get("Platform")); ConnectionInfo connectionInfo = (ConnectionInfo)storedConnectionInfo; string hostNameOrAddress = connectionInfo.HostNameOrAddress; if (!string.IsNullOrEmpty(platform)) { return(string.Format("{0} ({1})", (object)hostNameOrAddress, (object)platform)); } return(hostNameOrAddress); }
public static bool TryGetConnectionIdByName(string name, out int id) { ConnectionInfoStore connectionInfoStore = new ConnectionInfoStore(); StoredConnectionInfo storedConnectionInfo = (StoredConnectionInfo)null; if (connectionInfoStore.TryGetByName(name, RetrieveMode.All, out storedConnectionInfo)) { id = storedConnectionInfo.Id; return(true); } id = 0; return(false); }
public static bool TryGetDefaultConnectionInfo( ConnectionInfoStore store, RetrieveMode mode, StoredConnectionInfo[] excludedConnections, out StoredConnectionInfo connectionInfo) { connectionInfo = (StoredConnectionInfo)null; if (store.Connections.Count == 0) { return(false); } StoredConnectionInfo[] connectionsByAddedDate = RemoteTargetUtils.GetAvailableConnectionsByAddedDate(store); connectionInfo = store.Connections.Where <StoredConnectionInfo>((Func <StoredConnectionInfo, bool>)(c => !((IEnumerable <StoredConnectionInfo>)excludedConnections).Any <StoredConnectionInfo>((Func <StoredConnectionInfo, bool>)(e => e.Id == c.Id)))).Where <StoredConnectionInfo>((Func <StoredConnectionInfo, bool>)(c => c.LastSuccessful != DateTime.MinValue)).DefaultIfEmpty <StoredConnectionInfo>(((IEnumerable <StoredConnectionInfo>)connectionsByAddedDate).FirstOrDefault <StoredConnectionInfo>()).FirstOrDefault <StoredConnectionInfo>(); return(connectionInfo != null); }
public static SSHConnection GetSSHConnection(string name) { ThreadHelper.ThrowIfNotOnUIThread(); ConnectionInfoStore store = new ConnectionInfoStore(); ConnectionInfo connectionInfo = null; StoredConnectionInfo storedConnectionInfo = store.Connections.FirstOrDefault(connection => { return(string.Equals(name, SSHPortSupplier.GetFormattedSSHConnectionName((ConnectionInfo)connection), StringComparison.OrdinalIgnoreCase)); }); if (storedConnectionInfo != null) { connectionInfo = (ConnectionInfo)storedConnectionInfo; } if (connectionInfo == null) { IVsConnectionManager connectionManager = (IVsConnectionManager)ServiceProvider.GlobalProvider.GetService(typeof(IVsConnectionManager)); if (connectionManager != null) { IConnectionManagerResult result; if (string.IsNullOrWhiteSpace(name)) { result = connectionManager.ShowDialog(); } else { ParseSSHConnectionString(name, out string userName, out string hostName, out int port); result = connectionManager.ShowDialog(new PasswordConnectionInfo(hostName, port, Timeout.InfiniteTimeSpan, userName, new System.Security.SecureString())); } if ((result.DialogResult & ConnectionManagerDialogResult.Succeeded) == ConnectionManagerDialogResult.Succeeded) { // Retrieve the newly added connection store.Load(); connectionInfo = store.Connections.First(info => info.Id == result.StoredConnectionId); } } else { throw new InvalidOperationException("Why is IVsConnectionManager null?"); } } return(SSHHelper.CreateSSHConnectionFromConnectionInfo(connectionInfo)); }
public static string ResolveRemoteTargetId(string remoteTargetStringOrId) { RemoteTarget result1 = (RemoteTarget)null; int result2 = -1; if (RemoteTargetUtils.TryParseRemoteTarget(remoteTargetStringOrId, out result1)) { return(result1.Id.ToString()); } if (int.TryParse(remoteTargetStringOrId, out result2)) { return(result2.ToString()); } StoredConnectionInfo connectionInfo = (StoredConnectionInfo)null; if (RemoteTargetUtils.TryGetConnectionInfoOrDefault(remoteTargetStringOrId, out connectionInfo)) { return(connectionInfo.Id.ToString()); } return(remoteTargetStringOrId); }
public override bool Execute() { ConnectionInfoStore store = new ConnectionInfoStore(); StoredConnectionInfo connectionInfo = (StoredConnectionInfo)null; if (RemoteTargetUtils.TryGetConnectionInfoOrDefault(store, this.RemoteTarget, RetrieveMode.PropertiesOnly, out connectionInfo)) { this.ResolvedRemoteTarget = RemoteTargetUtils.ConnectionToString(connectionInfo); this.ResolvedRemoteTargetId = connectionInfo.Id.ToString(); this.RemoteTargetArchitecture = connectionInfo.Properties["Platform"] ?? ""; this.ResolvedRemoteUserName = RemoteTargetUtils.ConnectionToUserName(connectionInfo); } else { if (store.Connections.Count == 0 && !this.DesignTimeBuild) { this.Log.LogErrorFromResources("Error.NoRemoteTargets"); return(false); } this.ResolvedRemoteTarget = this.RemoteTarget; } this.RemoteTargetHash = this.RemoteTarget?.GetHashCode().ToString(); return(true); }
internal static Connection GetInstance(string name, ConnectionReason reason) { UnixSystem remoteSystem = null; ConnectionInfoStore store = new ConnectionInfoStore(); ConnectionInfo connectionInfo = null; StoredConnectionInfo storedConnectionInfo = store.Connections.FirstOrDefault(connection => { return(name.Equals(GetFormattedConnectionName((ConnectionInfo)connection), StringComparison.OrdinalIgnoreCase)); }); if (storedConnectionInfo != null) { connectionInfo = (ConnectionInfo)storedConnectionInfo; } if (connectionInfo == null) { IVsConnectionManager connectionManager = (IVsConnectionManager)ServiceProvider.GlobalProvider.GetService(typeof(IVsConnectionManager)); string userName; string hostName; int atSignIndex = name.IndexOf('@'); if (atSignIndex > 0) { userName = name.Substring(0, atSignIndex); hostName = name.Substring(atSignIndex + 1); } else { userName = string.Format(CultureInfo.CurrentCulture, StringResources.UserName_PlaceHolder); hostName = name; } PasswordConnectionInfo newConnectionInfo = new PasswordConnectionInfo(hostName, userName, new System.Security.SecureString()); IConnectionManagerResult result = connectionManager.ShowDialog(newConnectionInfo); if (result.DialogResult == ConnectionManagerDialogResult.Succeeded) { // Retrieve the newly added connection store.Load(); connectionInfo = store.Connections.First(info => info.Id == result.StoredConnectionId); } } if (connectionInfo != null) { remoteSystem = new UnixSystem(); while (true) { try { VSOperationWaiter.Wait(string.Format(CultureInfo.CurrentCulture, StringResources.WaitingOp_Connecting, name), throwOnCancel: false, action: () => { remoteSystem.Connect(connectionInfo); }); break; } catch (RemoteAuthenticationException) { IVsConnectionManager connectionManager = (IVsConnectionManager)ServiceProvider.GlobalProvider.GetService(typeof(IVsConnectionManager)); IConnectionManagerResult result = connectionManager.ShowDialog(StringResources.AuthenticationFailureHeader, StringResources.AuthenticationFailureDescription, connectionInfo); if (result.DialogResult == ConnectionManagerDialogResult.Succeeded) { // Update the credentials in the store store.Load(); store.RemoveById(result.StoredConnectionId); store.Add(result.ConnectionInfo); store.Save(); connectionInfo = result.ConnectionInfo; } else { return(null); } } catch (Exception ex) { VsShellUtilities.ShowMessageBox(ServiceProvider.GlobalProvider, ex.Message, null, OLEMSGICON.OLEMSGICON_CRITICAL, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST); return(null); } } // NOTE: This will be null if connect is canceled if (remoteSystem != null) { return(new Connection(remoteSystem)); } } return(null); }
public static string ConnectionToUserName(StoredConnectionInfo storedConnectionInfo) { ConnectionInfo connectionInfo = (ConnectionInfo)storedConnectionInfo; return(string.Format("{0}", (object)connectionInfo.UserName)); }
public static bool TryGetDefaultConnectionInfo(out StoredConnectionInfo connectionInfo) { return(RemoteTargetUtils.TryGetDefaultConnectionInfo(new ConnectionInfoStore(), RetrieveMode.All, new StoredConnectionInfo[0], out connectionInfo)); }