From 2c913e194a21ee61935a84a8b2b382d979ed0f5c Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Fri, 28 Oct 2022 22:19:59 +0800 Subject: [PATCH] WIP --- App.config | 26 +++- Config.cs | 48 +++++++ MainForm.Designer.cs | 315 +++++++++++++++++++++++++------------------ MainForm.cs | 148 +++++++++++++++++++- Profile.cs | 99 ++++++++++++++ RdpFile.cs | 5 + StringUtil.cs | 32 +++++ icon.ico | Bin 54979 -> 59516 bytes packages.config | 52 +++++++ rdp-portal.csproj | 105 ++++++++++++++- 10 files changed, 697 insertions(+), 133 deletions(-) create mode 100644 Config.cs create mode 100644 Profile.cs create mode 100644 RdpFile.cs create mode 100644 StringUtil.cs create mode 100644 packages.config diff --git a/App.config b/App.config index dffaa02..a83959c 100644 --- a/App.config +++ b/App.config @@ -1,7 +1,31 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Config.cs b/Config.cs new file mode 100644 index 0000000..01b6da7 --- /dev/null +++ b/Config.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using Newtonsoft.Json; + +namespace RDP_Portal { + public class Config { + + private static Config? _instance; + public static string filename = "config.json"; + public static string rdpDir = "rdp-files"; + + public static Config GetConfig() { + if (!File.Exists(filename)) { + File.AppendAllText(filename, "{}"); + } + + if (!Directory.Exists(rdpDir)) { + Directory.CreateDirectory(rdpDir); + } + + var json = File.ReadAllText(filename); + + _instance = JsonConvert.DeserializeObject(json); + + if (_instance == null) { + throw new Exception("Cannot read config.json"); + } + + if (_instance.Profiles == null) { + _instance.Profiles = new BindingList(); + _instance.Save(); + } + + return _instance; + } + + public BindingList Profiles { get; set; } + + public bool KeepOpening { get; set; } = true; + + public void Save() { + var json = JsonConvert.SerializeObject(this, Formatting.Indented); + File.WriteAllText(filename, json); + } + } +} diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index 56fb635..7a47471 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -25,49 +25,42 @@ /// private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - this.listBox1 = new System.Windows.Forms.ListBox(); - this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.checkBoxKeepOpening = new System.Windows.Forms.CheckBox(); this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.textBox1 = new System.Windows.Forms.TextBox(); + this.buttonConnect = new System.Windows.Forms.Button(); + this.textBoxComputer = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); - this.button3 = new System.Windows.Forms.Button(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.textBox3 = new System.Windows.Forms.TextBox(); - this.textBox4 = new System.Windows.Forms.TextBox(); + this.buttonNew = new System.Windows.Forms.Button(); + this.textBoxUsername = new System.Windows.Forms.TextBox(); + this.textBoxPassword = new System.Windows.Forms.TextBox(); + this.textBoxDomain = new System.Windows.Forms.TextBox(); this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.button4 = new System.Windows.Forms.Button(); - this.button5 = new System.Windows.Forms.Button(); - this.buttonMoreOptions = new System.Windows.Forms.Button(); + this.buttonSave = new System.Windows.Forms.Button(); + this.buttonDelete = new System.Windows.Forms.Button(); + this.buttonOptions = new System.Windows.Forms.Button(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.buttonEdit = new System.Windows.Forms.Button(); + this.textBoxName = new System.Windows.Forms.TextBox(); + this.listBox = new System.Windows.Forms.ListBox(); this.groupBox1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // - // listBox1 + // checkBoxKeepOpening // - this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); - this.listBox1.FormattingEnabled = true; - this.listBox1.ItemHeight = 16; - this.listBox1.Location = new System.Drawing.Point(13, 107); - this.listBox1.Margin = new System.Windows.Forms.Padding(4); - this.listBox1.Name = "listBox1"; - this.listBox1.Size = new System.Drawing.Size(211, 276); - this.listBox1.TabIndex = 0; - // - // checkBox1 - // - this.checkBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.checkBox1.Location = new System.Drawing.Point(13, 432); - this.checkBox1.Margin = new System.Windows.Forms.Padding(4); - this.checkBox1.Name = "checkBox1"; - this.checkBox1.Size = new System.Drawing.Size(367, 30); - this.checkBox1.TabIndex = 1; - this.checkBox1.Text = "Keep opening RDP Portal"; - this.checkBox1.UseVisualStyleBackColor = true; + this.checkBoxKeepOpening.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.checkBoxKeepOpening.Location = new System.Drawing.Point(13, 432); + this.checkBoxKeepOpening.Margin = new System.Windows.Forms.Padding(4); + this.checkBoxKeepOpening.Name = "checkBoxKeepOpening"; + this.checkBoxKeepOpening.Size = new System.Drawing.Size(367, 30); + this.checkBoxKeepOpening.TabIndex = 1; + this.checkBoxKeepOpening.Text = "Keep opening RDP Portal"; + this.checkBoxKeepOpening.UseVisualStyleBackColor = true; + this.checkBoxKeepOpening.CheckedChanged += new System.EventHandler(this.checkBoxKeepOpening_CheckedChanged); // // button1 // @@ -80,25 +73,26 @@ this.button1.Text = "About"; this.button1.UseVisualStyleBackColor = true; // - // button2 + // buttonConnect // - this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.button2.Location = new System.Drawing.Point(379, 432); - this.button2.Margin = new System.Windows.Forms.Padding(4); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(100, 28); - this.button2.TabIndex = 3; - this.button2.Text = "Connect"; - this.button2.UseVisualStyleBackColor = true; + this.buttonConnect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonConnect.Location = new System.Drawing.Point(358, 432); + this.buttonConnect.Margin = new System.Windows.Forms.Padding(4); + this.buttonConnect.Name = "buttonConnect"; + this.buttonConnect.Size = new System.Drawing.Size(121, 28); + this.buttonConnect.TabIndex = 3; + this.buttonConnect.Text = "Connect"; + this.buttonConnect.UseVisualStyleBackColor = true; + this.buttonConnect.Click += new System.EventHandler(this.buttonConnect_Click); // - // textBox1 + // textBoxComputer // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.Location = new System.Drawing.Point(123, 32); - this.textBox1.Margin = new System.Windows.Forms.Padding(4); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(209, 22); - this.textBox1.TabIndex = 4; + this.textBoxComputer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxComputer.Location = new System.Drawing.Point(123, 32); + this.textBoxComputer.Margin = new System.Windows.Forms.Padding(4); + this.textBoxComputer.Name = "textBoxComputer"; + this.textBoxComputer.Size = new System.Drawing.Size(209, 22); + this.textBoxComputer.TabIndex = 4; // // label1 // @@ -136,56 +130,58 @@ this.label4.TabIndex = 8; this.label4.Text = "Domain:"; // - // button3 + // buttonNew // - this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.button3.Location = new System.Drawing.Point(13, 396); - this.button3.Margin = new System.Windows.Forms.Padding(4); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(103, 28); - this.button3.TabIndex = 9; - this.button3.Text = "New"; - this.button3.UseVisualStyleBackColor = true; + this.buttonNew.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonNew.Location = new System.Drawing.Point(13, 396); + this.buttonNew.Margin = new System.Windows.Forms.Padding(4); + this.buttonNew.Name = "buttonNew"; + this.buttonNew.Size = new System.Drawing.Size(103, 28); + this.buttonNew.TabIndex = 9; + this.buttonNew.Text = "New"; + this.buttonNew.UseVisualStyleBackColor = true; + this.buttonNew.Click += new System.EventHandler(this.buttonNew_Click); // - // textBox2 + // textBoxUsername // - this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.textBox2.Location = new System.Drawing.Point(123, 69); - this.textBox2.Margin = new System.Windows.Forms.Padding(4); - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(209, 22); - this.textBox2.TabIndex = 10; + this.textBoxUsername.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxUsername.Location = new System.Drawing.Point(123, 69); + this.textBoxUsername.Margin = new System.Windows.Forms.Padding(4); + this.textBoxUsername.Name = "textBoxUsername"; + this.textBoxUsername.Size = new System.Drawing.Size(209, 22); + this.textBoxUsername.TabIndex = 10; // - // textBox3 + // textBoxPassword // - this.textBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.textBox3.Location = new System.Drawing.Point(124, 106); - this.textBox3.Margin = new System.Windows.Forms.Padding(4); - this.textBox3.Name = "textBox3"; - this.textBox3.Size = new System.Drawing.Size(208, 22); - this.textBox3.TabIndex = 11; + this.textBoxPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxPassword.Location = new System.Drawing.Point(124, 106); + this.textBoxPassword.Margin = new System.Windows.Forms.Padding(4); + this.textBoxPassword.Name = "textBoxPassword"; + this.textBoxPassword.Size = new System.Drawing.Size(208, 22); + this.textBoxPassword.TabIndex = 11; + this.textBoxPassword.UseSystemPasswordChar = true; // - // textBox4 + // textBoxDomain // - this.textBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.textBox4.Location = new System.Drawing.Point(124, 143); - this.textBox4.Margin = new System.Windows.Forms.Padding(4); - this.textBox4.Name = "textBox4"; - this.textBox4.Size = new System.Drawing.Size(208, 22); - this.textBox4.TabIndex = 12; + this.textBoxDomain.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxDomain.Location = new System.Drawing.Point(124, 143); + this.textBoxDomain.Margin = new System.Windows.Forms.Padding(4); + this.textBoxDomain.Name = "textBoxDomain"; + this.textBoxDomain.Size = new System.Drawing.Size(208, 22); + this.textBoxDomain.TabIndex = 12; // // groupBox1 // this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.groupBox1.Controls.Add(this.label3); - this.groupBox1.Controls.Add(this.textBox4); - this.groupBox1.Controls.Add(this.textBox1); - this.groupBox1.Controls.Add(this.textBox3); + this.groupBox1.Controls.Add(this.textBoxDomain); + this.groupBox1.Controls.Add(this.textBoxComputer); + this.groupBox1.Controls.Add(this.textBoxPassword); this.groupBox1.Controls.Add(this.label1); - this.groupBox1.Controls.Add(this.textBox2); + this.groupBox1.Controls.Add(this.textBoxUsername); this.groupBox1.Controls.Add(this.label2); this.groupBox1.Controls.Add(this.label4); - this.groupBox1.Location = new System.Drawing.Point(234, 107); + this.groupBox1.Location = new System.Drawing.Point(234, 141); this.groupBox1.Margin = new System.Windows.Forms.Padding(4); this.groupBox1.Name = "groupBox1"; this.groupBox1.Padding = new System.Windows.Forms.Padding(4); @@ -194,37 +190,40 @@ this.groupBox1.TabStop = false; this.groupBox1.Text = "Connection"; // - // button4 + // buttonSave // - this.button4.Location = new System.Drawing.Point(232, 305); - this.button4.Margin = new System.Windows.Forms.Padding(4); - this.button4.Name = "button4"; - this.button4.Size = new System.Drawing.Size(100, 28); - this.button4.TabIndex = 14; - this.button4.Text = "Save"; - this.button4.UseVisualStyleBackColor = true; + this.buttonSave.Location = new System.Drawing.Point(232, 339); + this.buttonSave.Margin = new System.Windows.Forms.Padding(4); + this.buttonSave.Name = "buttonSave"; + this.buttonSave.Size = new System.Drawing.Size(100, 28); + this.buttonSave.TabIndex = 14; + this.buttonSave.Text = "Save"; + this.buttonSave.UseVisualStyleBackColor = true; + this.buttonSave.Click += new System.EventHandler(this.buttonSave_Click); // - // button5 + // buttonDelete // - this.button5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.button5.Location = new System.Drawing.Point(124, 396); - this.button5.Margin = new System.Windows.Forms.Padding(4); - this.button5.Name = "button5"; - this.button5.Size = new System.Drawing.Size(100, 28); - this.button5.TabIndex = 15; - this.button5.Text = "Delete"; - this.button5.UseVisualStyleBackColor = true; + this.buttonDelete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonDelete.Location = new System.Drawing.Point(124, 396); + this.buttonDelete.Margin = new System.Windows.Forms.Padding(4); + this.buttonDelete.Name = "buttonDelete"; + this.buttonDelete.Size = new System.Drawing.Size(100, 28); + this.buttonDelete.TabIndex = 15; + this.buttonDelete.Text = "Delete"; + this.buttonDelete.UseVisualStyleBackColor = true; + this.buttonDelete.Click += new System.EventHandler(this.buttonDelete_Click); // - // buttonMoreOptions + // buttonOptions // - this.buttonMoreOptions.Location = new System.Drawing.Point(340, 305); - this.buttonMoreOptions.Margin = new System.Windows.Forms.Padding(4); - this.buttonMoreOptions.Name = "buttonMoreOptions"; - this.buttonMoreOptions.Size = new System.Drawing.Size(232, 28); - this.buttonMoreOptions.TabIndex = 16; - this.buttonMoreOptions.Text = "Show External RDP Options"; - this.buttonMoreOptions.UseVisualStyleBackColor = true; - this.buttonMoreOptions.Click += new System.EventHandler(this.buttonMoreOptions_Click); + this.buttonOptions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOptions.Location = new System.Drawing.Point(487, 339); + this.buttonOptions.Margin = new System.Windows.Forms.Padding(4); + this.buttonOptions.Name = "buttonOptions"; + this.buttonOptions.Size = new System.Drawing.Size(100, 28); + this.buttonOptions.TabIndex = 16; + this.buttonOptions.Text = "Options"; + this.buttonOptions.UseVisualStyleBackColor = true; + this.buttonOptions.Click += new System.EventHandler(this.buttonMoreOptions_Click); // // pictureBox1 // @@ -237,61 +236,119 @@ this.pictureBox1.TabIndex = 17; this.pictureBox1.TabStop = false; // + // buttonCancel + // + this.buttonCancel.Location = new System.Drawing.Point(340, 339); + this.buttonCancel.Margin = new System.Windows.Forms.Padding(4); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(100, 28); + this.buttonCancel.TabIndex = 18; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // buttonEdit + // + this.buttonEdit.Location = new System.Drawing.Point(232, 339); + this.buttonEdit.Margin = new System.Windows.Forms.Padding(4); + this.buttonEdit.Name = "buttonEdit"; + this.buttonEdit.Size = new System.Drawing.Size(100, 28); + this.buttonEdit.TabIndex = 19; + this.buttonEdit.Text = "Edit"; + this.buttonEdit.UseVisualStyleBackColor = true; + this.buttonEdit.Click += new System.EventHandler(this.buttonEdit_Click); + // + // textBoxName + // + this.textBoxName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxName.Location = new System.Drawing.Point(234, 107); + this.textBoxName.Margin = new System.Windows.Forms.Padding(4); + this.textBoxName.Name = "textBoxName"; + this.textBoxName.Size = new System.Drawing.Size(353, 22); + this.textBoxName.TabIndex = 13; + // + // listBox + // + this.listBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); + this.listBox.DisplayMember = "Name"; + this.listBox.FormattingEnabled = true; + this.listBox.ItemHeight = 16; + this.listBox.Location = new System.Drawing.Point(13, 107); + this.listBox.Margin = new System.Windows.Forms.Padding(4); + this.listBox.Name = "listBox"; + this.listBox.Size = new System.Drawing.Size(211, 276); + this.listBox.TabIndex = 0; + this.listBox.SelectedValueChanged += new System.EventHandler(this.listBox_SelectedValueChanged); + // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.Control; this.ClientSize = new System.Drawing.Size(600, 473); + this.Controls.Add(this.textBoxName); + this.Controls.Add(this.buttonEdit); + this.Controls.Add(this.buttonCancel); this.Controls.Add(this.pictureBox1); - this.Controls.Add(this.buttonMoreOptions); - this.Controls.Add(this.button5); - this.Controls.Add(this.button4); + this.Controls.Add(this.buttonOptions); + this.Controls.Add(this.buttonDelete); + this.Controls.Add(this.buttonSave); this.Controls.Add(this.groupBox1); - this.Controls.Add(this.button3); - this.Controls.Add(this.button2); + this.Controls.Add(this.buttonNew); + this.Controls.Add(this.buttonConnect); this.Controls.Add(this.button1); - this.Controls.Add(this.checkBox1); - this.Controls.Add(this.listBox1); + this.Controls.Add(this.checkBoxKeepOpening); + this.Controls.Add(this.listBox); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Location = new System.Drawing.Point(15, 15); this.Margin = new System.Windows.Forms.Padding(4); - this.MaximumSize = new System.Drawing.Size(900, 5528); - this.MinimumSize = new System.Drawing.Size(600, 520); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(618, 5528); + this.MinimumSize = new System.Drawing.Size(618, 520); this.Name = "MainForm"; this.Text = "RDP Portal"; + this.Load += new System.EventHandler(this.MainForm_Load); this.groupBox1.ResumeLayout(false); this.groupBox1.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); + this.PerformLayout(); } + private System.Windows.Forms.TextBox textBoxName; + + private System.Windows.Forms.Button buttonEdit; + + private System.Windows.Forms.ListBox listBox; + + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.Button buttonMoreOptions; + private System.Windows.Forms.Button buttonOptions; - private System.Windows.Forms.Button button4; - private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button buttonSave; + private System.Windows.Forms.Button buttonDelete; private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.TextBox textBox2; - private System.Windows.Forms.TextBox textBox3; - private System.Windows.Forms.TextBox textBox4; + private System.Windows.Forms.TextBox textBoxUsername; + private System.Windows.Forms.TextBox textBoxPassword; + private System.Windows.Forms.TextBox textBoxDomain; - private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button buttonNew; - private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBoxComputer; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4; - private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button buttonConnect; private System.Windows.Forms.Button button1; - private System.Windows.Forms.CheckBox checkBox1; - - private System.Windows.Forms.ListBox listBox1; + private System.Windows.Forms.CheckBox checkBoxKeepOpening; #endregion } diff --git a/MainForm.cs b/MainForm.cs index 875dcdd..268fbca 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -11,8 +11,49 @@ using System.Windows.Forms; namespace RDP_Portal { public partial class MainForm : Form { + + private Config _config; + private bool _editMode = false; + private Profile selectedProfile = null; + public MainForm() { InitializeComponent(); + _config = Config.GetConfig(); + } + + private void MainForm_Load(object sender, EventArgs e) { + listBox.DataSource = _config.Profiles; + + if (_config.Profiles.Count == 0) { + AddNewProfile(); + } + + checkBoxKeepOpening.Checked = _config.KeepOpening; + } + + public bool EditMode { + get => _editMode; + set { + buttonEdit.Visible = !value; + buttonSave.Visible = value; + buttonCancel.Visible = value; + buttonOptions.Enabled = !value; + + buttonConnect.Enabled = !value; + + textBoxName.Enabled = value; + textBoxComputer.Enabled = value; + textBoxUsername.Enabled = value; + textBoxPassword.Enabled = value; + textBoxDomain.Enabled = value; + } + } + + private void AddNewProfile() { + var profile = new Profile(); + profile.JustAdded = true; + _config.Profiles.Add(profile); + listBox.SelectedIndex = _config.Profiles.Count - 1; } private void buttonMoreOptions_Click(object sender, EventArgs e) { @@ -20,7 +61,7 @@ namespace RDP_Portal { CreateNoWindow = false, UseShellExecute = false, FileName = "mstsc.exe", - Arguments = "/edit test.rdp" + Arguments = "/edit " + GetSelectedProfile().Filename, }; try { @@ -30,5 +71,108 @@ namespace RDP_Portal { MessageBox.Show(ex.ToString()); } } + + + private void buttonConnect_Click(object sender, EventArgs e) { + GetSelectedProfile().PrepareRdpFile(); + + ProcessStartInfo startInfo = new ProcessStartInfo { + CreateNoWindow = false, + UseShellExecute = false, + FileName = "mstsc.exe", + Arguments = GetSelectedProfile().Filename, + }; + + try { + var exeProcess = Process.Start(startInfo) ?? throw new InvalidOperationException(); + exeProcess.WaitForExit(); + } catch (Exception ex) { + MessageBox.Show(ex.ToString()); + } + } + + private void listBox_SelectedValueChanged(object sender, EventArgs e) { + SelectProfile(); + } + + private Profile GetSelectedProfile() { + return (Profile) listBox.SelectedItem; + } + + private void SelectProfile(bool force = false) { + var profile = (Profile) listBox.SelectedItem; + + // Avoid click empty area reset value + if (profile == selectedProfile && !force) { + return; + } + + selectedProfile = profile; + + EditMode = profile.JustAdded; + + textBoxName.Text = profile.Name ; + textBoxComputer.Text = profile.Computer; + textBoxUsername.Text = profile.Username ; + textBoxPassword.Text = profile.Password; + textBoxDomain.Text = profile.Domain; + } + + private void buttonEdit_Click(object sender, EventArgs e) { + EditMode = true; + } + + private void buttonCancel_Click(object sender, EventArgs e) { + EditMode = false; + + var profile = GetSelectedProfile(); + + if (profile.JustAdded && _config.Profiles.Count > 1) { + buttonDelete_Click(null, null); + } else { + SelectProfile(true); + } + } + + private void buttonNew_Click(object sender, EventArgs e) { + AddNewProfile(); + } + + private void buttonDelete_Click(object sender, EventArgs e) { + var selectedItems = (Profile) listBox.SelectedItem; + selectedItems.Delete(); + _config.Profiles.Remove(selectedItems); + _config.Save(); + if (_config.Profiles.Count == 0) { + AddNewProfile(); + SelectProfile(true); + } + } + + private void buttonSave_Click(object sender, EventArgs e) { + var profile = (Profile) listBox.SelectedItem; + + profile.JustAdded = false; + + profile.Name = textBoxName.Text; + profile.Computer = textBoxComputer.Text; + profile.Username = textBoxUsername.Text; + profile.Password = textBoxPassword.Text; + profile.Domain = textBoxDomain.Text; + + profile.PrepareRdpFile(); + + _config.Save(); + EditMode = false; + + // Refresh the list + listBox.DisplayMember = null; + listBox.DisplayMember = "Name"; + } + + private void checkBoxKeepOpening_CheckedChanged(object sender, EventArgs e) { + _config.KeepOpening = checkBoxKeepOpening.Checked; + _config.Save(); + } } -} \ No newline at end of file +} diff --git a/Profile.cs b/Profile.cs new file mode 100644 index 0000000..294a70c --- /dev/null +++ b/Profile.cs @@ -0,0 +1,99 @@ +using System; +using System.IO; +using System.Windows.Forms; +using Newtonsoft.Json; + +namespace RDP_Portal { + public class Profile { + private string _name = ""; + + public string Name { + get { + if (_name == "") { + return ""; + } + return _name; + } + set => _name = value; + } + + public string Filename { get; set; } = ""; + public string Computer { get; set; } + public string Username { get; set; } + + public string EncryptedPassword { get; set; } = ""; + + [JsonIgnore] + public string Password { + get { + if (EncryptedPassword == "") { + return EncryptedPassword; + } + return EncryptedPassword.Decrypt(); + } + set => EncryptedPassword = value.Encrypt(); + } + + public string Domain { get; set; } + + public void PrepareRdpFile() { + var justCreated = false; + + if (Filename == null || Filename == "") { + String name; + while (true) { + name = Config.rdpDir + "\\" + StringUtil.GenerateName(8) + ".rdp"; + if (!File.Exists(name)) { + var file = File.Create(name); + file.Close(); + justCreated = true; + break; + } + } + Filename = name; + } + + if (!File.Exists(Filename)) { + var file = File.Create(Filename); + file.Close(); + justCreated = true; + } + + var writer = File.AppendText(Filename); + + if (Computer != "") { + writer.WriteLine("full address:s:" + Computer); + } + + if (Username != "") { + writer.WriteLine("username:s:" + Username); + } + + if (Password != "") { + // TODO + writer.WriteLine("password 51:b:" + Password); + } + + if (Domain != "") { + writer.WriteLine("domain:s:" + Domain); + } + + if (justCreated) { + writer.WriteLine("authentication level:i:0"); + writer.WriteLine("prompt for credentials:i:0"); + } + + writer.Close(); + } + + [JsonIgnore] public bool JustAdded { get; set; } = false; + + public void Delete() { + try { + File.Delete(Filename); + } catch (Exception ex) { + + } + } + } +} diff --git a/RdpFile.cs b/RdpFile.cs new file mode 100644 index 0000000..f5b7a79 --- /dev/null +++ b/RdpFile.cs @@ -0,0 +1,5 @@ +namespace RDP_Portal { + public class RdpFile { + + } +} \ No newline at end of file diff --git a/StringUtil.cs b/StringUtil.cs new file mode 100644 index 0000000..bff91f0 --- /dev/null +++ b/StringUtil.cs @@ -0,0 +1,32 @@ +using System; +using System.Linq; +using System.Security.Cryptography; +using System.Text; + +public static class StringUtil { + private static byte[] key = new byte[8] {226, 175, 129, 22, 187, 4, 143, 171}; + private static byte[] iv = new byte[8] {181, 239, 77, 174, 238, 148, 206, 164}; + + public static string Encrypt(this string text) { + SymmetricAlgorithm algorithm = DES.Create(); + ICryptoTransform transform = algorithm.CreateEncryptor(key, iv); + byte[] inputbuffer = Encoding.Unicode.GetBytes(text); + byte[] outputBuffer = transform.TransformFinalBlock(inputbuffer, 0, inputbuffer.Length); + return Convert.ToBase64String(outputBuffer); + } + + public static string Decrypt(this string text) { + SymmetricAlgorithm algorithm = DES.Create(); + ICryptoTransform transform = algorithm.CreateDecryptor(key, iv); + byte[] inputbuffer = Convert.FromBase64String(text); + byte[] outputBuffer = transform.TransformFinalBlock(inputbuffer, 0, inputbuffer.Length); + return Encoding.Unicode.GetString(outputBuffer); + } + + public static string GenerateName(int len) { + Random random = new Random(); + const string chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + return new string(Enumerable.Repeat(chars, len) + .Select(s => s[random.Next(s.Length)]).ToArray()); + } +} diff --git a/icon.ico b/icon.ico index b191977bd4a771ffbfb208bf2f23075e1cfff97a..23fc6ef60fd534a4a08081108658cc24f317f306 100644 GIT binary patch literal 59516 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 R5vK)#$JEI3RH*?m`hPiWXixwE literal 54979 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/rdp-portal.csproj b/rdp-portal.csproj index 91fcc3a..aa6fba0 100644 --- a/rdp-portal.csproj +++ b/rdp-portal.csproj @@ -1,5 +1,6 @@  + Debug @@ -39,27 +40,118 @@ app.manifest + + packages\Costura.Fody.5.7.0\lib\netstandard1.0\Costura.dll + + + packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + + + + packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll + + + packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll + + + + packages\System.Console.4.3.0\lib\net46\System.Console.dll + + + packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll + + + packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll + + + packages\System.IO.4.3.0\lib\net462\System.IO.dll + + + packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + + + + packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + + + packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll + + + packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll + + + packages\System.Linq.4.3.0\lib\net463\System.Linq.dll + + + packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll + + + packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll + + + packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + + + + packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll + + + packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + + + packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll + + + packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll + + + packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + + + packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + + + packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + + + packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + + + packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + + + packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll + - + + packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll + + Form MainForm.cs + + + MainForm.cs @@ -73,6 +165,7 @@ Resources.resx + SettingsSingleFileGenerator Settings.Designer.cs @@ -91,5 +184,15 @@ + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}. + + + + + + \ No newline at end of file