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(); }
public static string GetSecrectKey() { RDSDataManager manager = new RDSDataManager(); var initTimeString = manager.GetInitTime(); return(GetSecrectKey(initTimeString)); }
public static string GetSecrectKey(string initTimeString) { RDSDataManager manager = new RDSDataManager(); var secrectKey = manager.GetSecrectKey(); return(GetSecrectKey(initTimeString, secrectKey)); }
/// <summary> /// 解密加密的全部密码 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void decryptToolStripMenuItem_Click(object sender, EventArgs e) { // 查询全部数据 RDSDataManager dataManager = new RDSDataManager(); var doc = dataManager.GetData(); var root = doc.Root; RDSDataNode rootNode = new RDSDataNode(); rootNode.Text = "远程桌面"; rootNode.Tag = Guid.Empty; rootNode.NodeType = RDSDataNodeType.Group; rootNode.ContextMenuStrip = rightButtonMenu; rootNode.ImageIndex = 0; InitTreeNodes(root, rootNode); DecryptPassword(dataManager, rootNode); // 清除加密Key和密钥,下次登录需 dataManager.SetSecrectKey(string.Empty); dataManager.SetInitTime(string.Empty); dataManager.SetPassword(string.Empty); MessageBox.Show("处理成功,请重新启动。", "处理成功", MessageBoxButtons.OK, MessageBoxIcon.Information); }
private void button1_Click(object sender, EventArgs e) { Model.GroupID = Model.GroupID == Guid.Empty ? Guid.NewGuid() : Model.GroupID; Model.GroupName = txtGroupName.Text; if (string.IsNullOrWhiteSpace(Model.GroupName)) { MessageBox.Show("请首先填写组名称!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } RDSDataManager dataManager = new RDSDataManager(); dataManager.AddGroup(Model); this.DialogResult = DialogResult.OK; }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); RDSDataManager dataManager = new RDSDataManager(); var secKey = dataManager.GetSecrectKey(); var initTime = dataManager.GetInitTime(); if (string.IsNullOrWhiteSpace(secKey) || string.IsNullOrWhiteSpace(initTime)) { Application.Run(new InitForm()); } else { Application.Run(new LoginForm()); } }
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; }
private void InitTreeView() { RDSDataManager dataManager = new RDSDataManager(); var doc = dataManager.GetData(); var root = doc.Root; RDSDataNode rootNode = new RDSDataNode(); rootNode.Text = "远程桌面"; rootNode.Tag = Guid.Empty; rootNode.NodeType = RDSDataNodeType.Group; rootNode.ContextMenuStrip = rightButtonMenu; rootNode.ImageIndex = 0; InitTreeNodes(root, rootNode); serverTree.Nodes.Add(rootNode); serverTree.ImageList = imageList1; rootNode.Expand(); currentTreeNode = rootNode; }
/// <summary> /// 移除节点 /// </summary> /// <param name="node"></param> private void RemoveServerTreeNode(RDSDataNode node, bool removePanel = true) { var nodeID = (Guid)node.Tag; if (nodeID != Guid.Empty) { // 数据中移除 RDSDataManager dataManager = new RDSDataManager(); dataManager.Remove(nodeID); // 树形菜单中移除 node.Remove(); // Panel移除 if (removePanel) { var panelID = "panel_" + nodeID; if (rdPanelDictionary.ContainsKey(panelID)) { rdPanelDictionary.Remove(panelID); } } } }
/// <summary> /// 拖动释放 /// 参考:http://www.cnblogs.com/jiewei915/archive/2012/01/11/2318951.html /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void serverTree_DragDrop(object sender, DragEventArgs e) { // 得到拖放中的节点 var moveDataNode = (RDSDataNode)e.Data.GetData("RDManager.Model.RDSDataNode"); // 根据鼠标坐标确定要移动到的目标节点 TreeNode targetNode = new TreeNode(); Point pt = ((TreeView)(sender)).PointToClient(new Point(e.X, e.Y)); targetNode = this.serverTree.GetNodeAt(pt); var targetDataNode = (RDSDataNode)targetNode; // 如果目标为自己,返回 if (targetDataNode.Text == moveDataNode.Text) { return; } // 如果目标包含在自己的节点树中,返回 if (moveDataNode.Nodes.Contains(targetDataNode)) { return; } else if (targetDataNode.FullPath.Contains(moveDataNode.FullPath)) { return; } // 如果目标节点是Server,返回 if (targetDataNode.NodeType == RDSDataNodeType.Server) { return; } // 如果目标为子节点,返回 if (targetDataNode.Parent == moveDataNode) { return; } // 如果目标为父节点,返回 if (targetDataNode == moveDataNode.Parent) { return; } // 移除拖放的节点 RemoveServerTreeNode(moveDataNode, false); // 添加节点 var newMoveNode = (RDSDataNode)moveDataNode.Clone(); newMoveNode.RDSData = moveDataNode.RDSData; newMoveNode.NodeType = moveDataNode.NodeType; // 保存节点 if (newMoveNode.NodeType == RDSDataNodeType.Group) { var group = (RDSGroup)newMoveNode.RDSData; group.ParentGroupID = (Guid)targetDataNode.Tag; RDSDataManager dataManager = new RDSDataManager(); dataManager.AddGroup(group); } else { var server = (RDSServer)newMoveNode.RDSData; server.GroupID = (Guid)targetDataNode.Tag; RDSDataManager dataManager = new RDSDataManager(); dataManager.AddServer(server); } // 将节点插入到分组中 targetDataNode.Nodes.Insert(targetDataNode.Nodes.Count, newMoveNode); // 更新当前拖动的节点选择 serverTree.SelectedNode = newMoveNode; // 展开当前节点的父节点 targetDataNode.Expand(); }