private void button1_Click(object sender, EventArgs e) { string password = txtPassword.Text.Trim(); string secrectKey = txtSecrectKey.Text.Trim(); if (string.IsNullOrWhiteSpace(password) || string.IsNullOrWhiteSpace(secrectKey)) { MessageBox.Show("请输入登录密码和加密密钥!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } DateTime now = DateTime.Now; var initTime = now.Ticks - openTime.Ticks; var initTimeString = initTime.ToString(); secrectKey = EncryptUtils.MD5Encrypt(secrectKey); var passSecrectKey = EncryptUtils.GetSecrectKey(initTimeString, secrectKey); var encryptPassword = EncryptUtils.DES3Encrypt(password, passSecrectKey); RDSDataManager manager = new RDSDataManager(); manager.SetSecrectKey(secrectKey); manager.SetInitTime(initTimeString); manager.SetPassword(encryptPassword); manager.EncryptServer(); this.Hide(); LoginForm loginForm = new LoginForm(); loginForm.ShowDialog(); this.Close(); }
/// <summary> /// 连接Windows远程桌面 /// </summary> /// <param name="server"></param> private void ConnectWindowsDesktop(RDSServer server) { AxMSTSCLib.AxMsRdpClient9NotSafeForScripting rdp = null; // 如果Panel中包含子控件,则让远程桌面控件启动连接 if (currentRDPanel.HasChildren) { rdp = (AxMSTSCLib.AxMsRdpClient9NotSafeForScripting)currentRDPanel.Controls[0]; // About Connected https://msdn.microsoft.com/en-us/library/aa382835(v=vs.85).aspx if (rdp.Connected == 0) { // 防止服务器相关参数变更 rdp.Tag = server.ServerID.ToString(); rdp.Name = "rdp_" + server.ServerID.ToString(); rdp.Server = server.ServerAddress; rdp.AdvancedSettings9.RDPPort = server.ServerPort; rdp.UserName = server.UserName; rdp.AdvancedSettings9.ClearTextPassword = EncryptUtils.DecryptServerPassword(server); rdp.Connect(); } } // 如果远程桌面控件不存在,则创建 if (rdp == null) { rdp = new AxMSTSCLib.AxMsRdpClient9NotSafeForScripting(); rdp.Width = this.splitContainer1.Panel2.Width; rdp.Height = this.splitContainer1.Panel2.Height; rdp.Dock = System.Windows.Forms.DockStyle.None; currentRDPanel.Controls.Add(rdp); rdp.Tag = server.ServerID.ToString(); rdp.Name = "rdp_" + server.ServerID.ToString(); rdp.Server = server.ServerAddress; rdp.UserName = server.UserName; rdp.CausesValidation = false; rdp.AdvancedSettings9.EnableCredSspSupport = true; rdp.AdvancedSettings9.RDPPort = server.ServerPort; rdp.AdvancedSettings9.ClearTextPassword = EncryptUtils.DecryptServerPassword(server); rdp.AdvancedSettings9.BandwidthDetection = true; rdp.AdvancedSettings.allowBackgroundInput = 1; rdp.ColorDepth = 32; rdp.ConnectingText = "正在连接"; rdp.DisconnectedText = "连接已断开"; rdp.OnConnected += Rdp_OnConnected; rdp.OnDisconnected += Rdp_OnDisconnected; rdp.OnFatalError += Rdp_OnFatalError; rdp.Connect(); } }
private void button2_Click(object sender, EventArgs e) { string password = txtPassword.Text.Trim(); var secrectPassword = new RDSDataManager().GetPassword(); var encryptPassword = EncryptUtils.EncryptPassword(password); if (encryptPassword != secrectPassword) { MessageBox.Show("密码不正确,请重新输入!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } this.Hide(); MainForm mainForm = new MainForm(); mainForm.ShowDialog(); this.Close(); }
/// <summary> /// 递归解密全部密码 /// </summary> /// <param name="dataManager"></param> /// <param name="parentNode"></param> private void DecryptPassword(RDSDataManager dataManager, RDSDataNode parentNode) { if (parentNode.Nodes == null && parentNode.Nodes.Count <= 0) { return; } // 恢复密码为明文 foreach (RDSDataNode node in parentNode.Nodes) { if (node.NodeType == RDSDataNodeType.Server) { var server = (RDSServer)node.RDSData; server.Password = EncryptUtils.DecryptServerPassword(server); dataManager.AddServer(server); } else { DecryptPassword(dataManager, node); } } }
private void button1_Click(object sender, EventArgs e) { Model.ServerID = Model.ServerID == Guid.Empty ? Guid.NewGuid() : Model.ServerID; Model.ServerName = txtServerName.Text.Trim(); Model.ServerAddress = txtServerAddress.Text.Trim(); Model.UserName = txtUserName.Text.Trim(); Model.Password = txtPassword.Text.Trim(); Model.OpType = rbtnWindows.Checked ? rbtnWindows.Text : rbtnLinux.Text; Model.LinkType = rbtnRD.Checked ? rbtnRD.Text : rbtnSSH.Text; int serverPort = 0; if (!int.TryParse(txtServerPort.Text.Trim(), out serverPort)) { MessageBox.Show("端口号应该是一个数字!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } Model.ServerPort = serverPort; if (string.IsNullOrWhiteSpace(Model.ServerName) || string.IsNullOrWhiteSpace(Model.ServerAddress) || string.IsNullOrWhiteSpace(Model.UserName) || string.IsNullOrWhiteSpace(Model.Password) || string.IsNullOrWhiteSpace(Model.OpType) || string.IsNullOrWhiteSpace(Model.LinkType)) { MessageBox.Show("请首先填写所有项目!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } RDSDataManager dataManager = new RDSDataManager(); Model.Password = EncryptUtils.EncryptServerPassword(Model); dataManager.AddServer(Model); this.DialogResult = DialogResult.OK; }