login.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. using Archives_Center.Properties;
  2. using System;
  3. using System.IO;
  4. using System.Threading;
  5. using System.Windows.Forms;
  6. namespace Archives_Center
  7. {
  8. public partial class login : Form
  9. {
  10. public login()
  11. {
  12. InitializeComponent();
  13. if (!File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted"))
  14. {
  15. if (MessageBox.Show("检测到 Archives Center 在此设备上尚属首次启动,是否立即新建账户?", "Archives Center 首次启动检测", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  16. {
  17. register register = new register();
  18. register.ShowDialog();
  19. }
  20. }
  21. }
  22. private void toolStripButton1_Click(object sender, EventArgs e)
  23. {
  24. register register = new register();
  25. register.ShowDialog();
  26. }
  27. private void toolStripButton3_CheckedChanged(object sender, EventArgs e)
  28. {
  29. if (toolStripButton3.Checked != true)
  30. {
  31. textBox2.ReadOnly = false;
  32. textBox2.Text = null;
  33. textBox1.Text = null;
  34. textBox2.Focus();
  35. }
  36. if (toolStripButton3.Checked == true)
  37. {
  38. textBox2.Text = Environment.UserDomainName + @"\" + Environment.UserName;
  39. textBox1.Text = null;
  40. textBox2.ReadOnly = true;
  41. textBox1.Focus();
  42. }
  43. }
  44. private void button1_Click(object sender, EventArgs e)
  45. {
  46. try
  47. {
  48. if (textBox1.Text.Length > 0)
  49. {
  50. if (textBox2.Text.Length > 0)
  51. {
  52. string UserDataCachePath = Path.GetTempPath() + @"ArchivesCenter\UsersData\";
  53. string Password = "fbHQb7L9ODdO9pyPB4cDaMtiW7AgYKJLmQb7FewTiJZhyQwzCJucVf4scvQt7R6b";
  54. string UserDataPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted";
  55. SevenZipHelper.ExtractEncryptedArchive(UserDataPath, UserDataCachePath, Password);
  56. using (StreamReader reader = new StreamReader(UserDataCachePath + textBox2.Text + @"\password.txt"))
  57. {
  58. string txtpwd = reader.ReadLine();
  59. if (txtpwd == textBox1.Text)
  60. {
  61. Settings.Default.current_user = textBox2.Text;
  62. Settings.Default.Save();
  63. if (Directory.Exists(Path.GetTempPath() + @"ArchivesCenter\Data\" + Settings.Default.current_user))
  64. {
  65. MessageBox.Show("检测到 Archives Center 上次启动后未正常退出,请在稍后开启的命令行窗口内输入您满意的操作。\n推荐进行的操作和输入的内容如下:\n1.加载上一次正常退出时保存的数据库,输入“A”(推荐)\n2.继续使用未正常退出时使用的数据库,输入“S”", "Archives Center 未正常退出", MessageBoxButtons.OK, MessageBoxIcon.Error);
  66. }
  67. Form1 form1 = new Form1();
  68. form1.Show();
  69. this.Hide();
  70. }
  71. else
  72. {
  73. MessageBox.Show("用户不存在或密码错误!", "Archives Center 登录 错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  74. Thread.Sleep(1000);
  75. }
  76. }
  77. Directory.Delete(Path.GetTempPath() + @"ArchivesCenter\UsersData\", true);
  78. }
  79. else
  80. {
  81. MessageBox.Show("请检查您填入的字段是否完整", "登录 错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  82. }
  83. }
  84. else
  85. {
  86. MessageBox.Show("请检查您填入的字段是否完整", "登录 错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  87. }
  88. }
  89. catch (Exception ex)
  90. {
  91. MessageBox.Show("用户不存在或密码错误!", "登录 错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
  92. Directory.Delete(Path.GetTempPath() + @"ArchivesCenter\UsersData\", true);
  93. }
  94. }
  95. }
  96. }