You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 line
3.2 KiB

  1. using System;
  2. using System.Windows.Forms;
  3. using StuMgmLib.MyNameSpace;
  4. using System.Text.RegularExpressions;
  5. namespace StuMgmClient
  6. {
  7. public partial class LoginForm : Form
  8. {
  9. const string deaultIp = "10.10.0.44";
  10. const int deaultPort = 502;
  11. const short job_id = 01943;
  12. public LoginForm()
  13. {
  14. InitializeComponent();
  15. SystemComm.Init(deaultIp, deaultPort);
  16. }
  17. //账号密码正则校验
  18. public bool RegexUser(string u, string p)
  19. {
  20. var regex = new Regex("^[A-Za-z0-9]{1,5}$");
  21. //校验密码是否符合
  22. bool resultU = regex.IsMatch(u);
  23. bool resultP = regex.IsMatch(p);
  24. if (resultU == true && resultP == true)
  25. {
  26. return true;
  27. }
  28. else
  29. {
  30. return false;
  31. }
  32. }
  33. private void chkPassWord_CheckedChanged(object sender, EventArgs e)
  34. {
  35. }
  36. private void labForgetPassword_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  37. {
  38. }
  39. private void btnSubmit_Click(object sender, EventArgs e)
  40. {
  41. Lvl userRole;
  42. int token;
  43. short job_id;
  44. if (VerifLogin(out job_id, out userRole, out token) != ErrCode.Success)
  45. return;
  46. if (SystemData.InitSystemData() != ErrCode.Success)
  47. throw new Exception("初始化异常,请重新启动");
  48. switch (userRole)
  49. {
  50. case Lvl.Student:
  51. ShowStudentForm(job_id, token);
  52. break;
  53. case Lvl.Teacher:
  54. ShowTeacherForm(job_id, token);
  55. break;
  56. default:
  57. MessageBox.Show(userRole.ToString());
  58. break;
  59. }
  60. }
  61. ErrCode VerifLogin(out short job_id, out Lvl userRole, out int token)
  62. {
  63. if (!RegexUser(txtUserName.Text, txtPassWord.Text))
  64. {
  65. MessageBox.Show("账号密码格式错误,请重新输入", "提示");
  66. job_id = 0;
  67. userRole = Lvl.Error;
  68. token = 0;
  69. return ErrCode.ErrData;
  70. }
  71. else
  72. {
  73. job_id = Convert.ToInt16(txtUserName.Text);
  74. string password = txtPassWord.Text;
  75. //ErrCode errcode = SystemCtrl.VerifLogin(txtUserName.Text, txtPassWord.Text, out userRole, out token);
  76. ErrCode errcode = SystemCtrl.VerifLogin(job_id, password, out userRole, out token);
  77. if (errcode != ErrCode.Success)
  78. MessageBox.Show(errcode.ToString());
  79. return errcode;
  80. }
  81. }
  82. void ShowStudentForm(short job_id, int token)
  83. {
  84. this.Hide();
  85. StudentForm stu = new StudentForm(job_id, token);
  86. stu.ShowDialog();
  87. this.Show();
  88. }
  89. void ShowTeacherForm(short job_id, int token)
  90. {
  91. this.Hide();
  92. TeacherForm tea = new TeacherForm(job_id, token);
  93. tea.ShowDialog();
  94. this.Show();
  95. }
  96. }
  97. }