0

我有一个带有登录系统的 C# 应用程序,它工作正常,但我想要的是用户可以注销并再次登录,以便主窗体中的菜单将改变其可见性,这就是我的做法。我有一个登录表单、主表单和一个最终用户类。

mainform 是程序在加载时首先运行的,它将显示登录表单的对话框。

在登录代码中。它将用户名和密码传递给最终用户类并检查属性 loginsuccess

public partial class Login : Form
{
   private void cmdlogin_Click(object sender, EventArgs e)
    {
        if (IsEmpty())
        {
            MessageBox.Show("Please enter username/password.");
            TxtFocus();
        }
        else
        {
            EndUser.LogIn(txtusername.Text, txtpassword.Text);
            if (EndUser.LogInSucces)
            {

            }
            else
            {

            }
        }
    }
}

在最终用户类中,它将打开与数据库的连接并搜索用户名和密码是否可用并将属性 loginsuccess 更改为 true 并将角色属性更改为枚举中的适当属性。

之后,登录表单将关闭以显示主表单。主窗体将检查用户的角色并设置菜单的可见性。

public partial class Form1 : Form
{
     public Form1()
    {
        InitializeComponent();
        Login loginFrm = new Login();
        loginFrm.ShowDialog();
        this.IsMdiContainer = true;            
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        if (EndUser.LogInSucces) {
            switch (EndUser.GetRole())
            {
                case EndUser.Role.Principal:
                    PrincipalSettings();
                    break;
                case EndUser.Role.Admission:
                    AdmissionSettings();
                    break;
                case EndUser.Role.Registrar:
                    RegistrarSettings();
                    break;
                case EndUser.Role.Faculty:
                    FacultySettings();
                    break;
            }
        }
    }

 #region menus visibility

我尝试使用命令 application.restart() 重新启动应用程序,因为它将开始登录流程,但这并不好,因为当我在程序中执行某些操作然后注销时,我会收到错误消息。你能提供一些建议吗?

4

0 回答 0