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.

107 lines
3.1 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Net.Sockets;
  7. using System.Text;
  8. using System.Text.RegularExpressions;
  9. using System.Windows.Forms;
  10. using StuMgmLib.MyNameSpace;
  11. namespace StuMgmClient
  12. {
  13. public partial class LoginForm : Form
  14. {
  15. public static LoginForm login;
  16. public LoginForm()
  17. {
  18. InitializeComponent();
  19. }
  20. string userName = "";
  21. string pawssWord = "";
  22. DataSet ds = null;
  23. private void btnSubmit_Click(object sender, EventArgs e)
  24. {
  25. Login();
  26. }
  27. //登陆方法
  28. public void Login()
  29. {
  30. userName = txtUserName.Text;
  31. pawssWord = txtPassWord.Text;
  32. //if (!RegexUser(userName, pawssWord))
  33. //{
  34. // MessageBox.Show("用户名和密码必须包含数字,小写或大写,5到20位", "提示");
  35. // return;
  36. //}
  37. Info.ServerSend ss = ConnectServer();
  38. //权限管理
  39. int powerNum = (int)ss.permission;
  40. ds = ss.ds;
  41. switch (powerNum)
  42. {
  43. case (int)Roles.Student:
  44. StudentForm stu = new StudentForm(ds);
  45. stu.Show();
  46. login.Hide();
  47. break;
  48. case (int)Roles.Teacher:
  49. TeacherForm tf = new TeacherForm(ds);
  50. tf.Show();
  51. login.Hide();
  52. break;
  53. case (int)Roles.Admin:
  54. AdminForm af = new AdminForm();
  55. af.Show();
  56. login.Hide();
  57. break;
  58. case (Int32)Roles.NotFound:
  59. MessageBox.Show("账号或用户名错误", "提示");
  60. break;
  61. }
  62. }
  63. //账号密码正则校验
  64. public bool RegexUser(string u, string p)
  65. {
  66. var regex = new Regex("^(?![0-9]+$)(?![a-zA-Z]+$)(?![a-z!@#$]+$)(?![A-Z!@#$]+$)(?![\\d!@#$]+$)^[a-zA-Z\\d!@#$]{5,20}$");
  67. //校验密码是否符合
  68. bool resultU = regex.IsMatch(u);
  69. bool resultP = regex.IsMatch(p);
  70. if (resultU == true && resultP == true)
  71. {
  72. return true;
  73. }
  74. else
  75. {
  76. return false;
  77. }
  78. }
  79. //登陆连接服务器
  80. public Info.ServerSend ConnectServer()
  81. {
  82. Socket client= ClientConnect.Connect("10.10.0.44", 502);
  83. if (client== null)
  84. {
  85. MessageBox.Show("连接失败", "提示");
  86. return null;
  87. }
  88. else
  89. {
  90. ClientConnect.Send(client);
  91. Info.ServerSend ss = ClientConnect.Receive(client);
  92. return ss;
  93. }
  94. }
  95. //窗体加载
  96. private void LoginForm_Load(object sender, EventArgs e)
  97. {
  98. login = this;
  99. }
  100. }
  101. }