private void ShowLoginDialog()
        {
            LoginDialog loginDialog = new LoginDialog();

            if (loginDialog.ShowDialog(this) == DialogResult.OK)
            {
                TabPage            newTab          = new TabPage(loginDialog.HostName);
                SshTerminalControl terminalControl = new SshTerminalControl
                {
                    Font         = new Font("Consolas", 14),
                    ForeColor    = Color.LightGray,
                    BackColor    = Color.Black,
                    HostName     = loginDialog.HostName,
                    Username     = loginDialog.Username,
                    Port         = loginDialog.Port,
                    Dock         = DockStyle.Fill,
                    TerminalType = loginDialog.TerminalType,
                    SshProtocol  = loginDialog.ProtocolType
                };

                if (!string.IsNullOrEmpty(loginDialog.IdentityFile))
                {
                    terminalControl.IdentityFile = loginDialog.IdentityFile;
                }

                else if (!string.IsNullOrEmpty(loginDialog.Password))
                {
                    terminalControl.Password = new SecureString();

                    foreach (char character in loginDialog.Password)
                    {
                        terminalControl.Password.AppendChar(character);
                    }
                }

                terminalControl.Disconnected += terminalControl_Disconnected;
                terminalControl.LoggedOff    += terminalControl_LoggedOff;

                newTab.Controls.Add(terminalControl);

                _terminalTabs.TabPages.Insert(_terminalTabs.SelectedIndex, newTab);
                _terminalTabs.SelectTab(newTab);

                terminalControl.AsyncConnect();
            }

            else if (_terminalTabs.TabCount > 1)
            {
                _terminalTabs.SelectedIndex = _terminalTabs.TabCount - 2;
            }
        }
示例#2
0
        //********************************************************************************************
        public void Connect()
        {
            loadingCircle1.BringToFront();
            loadingCircle1.Active            = true;
            loadingCircle1.InnerCircleRadius = 15;
            loadingCircle1.OuterCircleRadius = 30;
            loadingCircle1.SpokeThickness    = 5;
            loadingCircle1.Top     = (this.Height / 2) + 10;
            loadingCircle1.Left    = (this.Width / 2) - 40;
            loadingCircle1.Visible = true;
            SetStatusText("Connecting...");

            switch (server.SshTerminal)
            {
            case 1:
            {
                if (File.Exists("putty\\putty.exe"))
                {
                    CreatePuttySession();
                    puttyPanel.ApplicationParameters = String.Format(" -load \"{4}\" {0} -P {5} -l {1} -pw {2} {3}",
                                                                     server.Host,
                                                                     server.Username,
                                                                     server.Password,
                                                                     (server.SSH1) ? "-1" : "-2",
                                                                     String.Format("XwRemote{0}", server.ID),
                                                                     server.Port);

                    ThreadPool.QueueUserWorkItem(new WaitCallback(ConnectTrd), this);
                }
                else
                {
                    loadingCircle1.Visible = false;
                    SetStatusText("Putty not found");
                }
            }
            break;

            case 2:
            {
                poderosaPanel.Connected    += PoderosaPanel_Connected;
                poderosaPanel.Disconnected += PoderosaPanel_Disconnected;
                poderosaPanel.LoggedOff    += PoderosaPanel_LoggedOff;
                poderosaPanel.AsyncConnect();
            }
            break;
            }
        }