我应该如何使用 C# 编写登录代码

本文关键字:登录 代码 何使用 我应该 | 更新日期: 2023-09-27 18:31:48

我对这段代码有问题。它是软件的登录。我想限制每个员工的一些可访问性。但它不起作用。实际上,我在加载menuenabled=false所有选项。

这是窗体背后的代码。该表单有 2 个textboxes,其中一个用于username,另一个用于password,并有一个Enter按钮。

    private void Enter_Click(object sender, EventArgs e)
    {
        if (txtPassword.Text == "10")
        {
            FormMenu a = new FormMenu();
            this.Hide();
            a.EmployeManagement.Enabled = true;
            a.Sabtenam.Enabled = true;
            a.Shora.Enabled = true;
            a.HozorGhiab.Enabled = true;
            a.Ketabkhane.Enabled = true;
            new FormMenu().Show();
            a.Refresh();                
        }
        else
            if (txtPassword.Text == "20")
            {
                FormMenu a = new FormMenu();
                this.Hide();
                a.Sabtenam.Enabled = true;
                a.HozorGhiab.Enabled = true;
                new FormMenu().Show();
            }
            else
                if (txtPassword.Text == "30")
                {
                    FormMenu a = new FormMenu();
                    this.Hide();
                    a.Shora.Enabled = true;
                    new FormMenu().Show();
                }
                    else
                    if (txtPassword.Text == "40")
                    {
                        FormMenu a = new FormMenu();
                        this.Hide();
                        a.HozorGhiab.Enabled = true;
                        new FormMenu().Show();
                    }
                    else
                        if (txtPassword.Text == "50")
                        {
                            FormMenu a = new FormMenu();
                            this.Hide();
                            a.Shora.Enabled = true;
                            new FormMenu().Show();
                        }
                        else
                            if (txtPassword.Text == "60")
                            {
                                FormMenu a = new FormMenu();
                                this.Hide();
                                a.Ketabkhane.Enabled = true;
                                new FormMenu().Show();
                            }
                            else
                                MessageBox.Show("Invalid username or password");

    }

我应该如何使用 C# 编写登录代码

我建议您创建一个包含员工详细信息的SQL数据库表,并在第一个表中制作另一个包含有关密码,限制和员工参考号的详细信息的表。

然后在代码中,您可以获取用户输入并使用数据库值检查这些值。

您应该new FormMenu().Show();删除所有这些行,并使用在其中启用选项的实例。IE:a.Show()

if (txtPassword.Text == "10")
{
    FormMenu a = new FormMenu();
    this.Hide();
    a.EmployeManagement.Enabled = true;
    a.Sabtenam.Enabled = true;
    a.Shora.Enabled = true;
    a.HozorGhiab.Enabled = true;
    a.Ketabkhane.Enabled = true;
    a.Show();

}

以此类推,对于所有其他 if 条件.....

这需要对基本的 OOP 原理进行一些解释。调用 new 时,将创建在新调用中调用的类的新实例。此实例的所有属性都设置为默认值。(我假设您的菜单以启用属性设置为 false 开头)开始更改要启用的该实例(a实例)的属性。

现在,如果您再次调用 new 并创建 FormMenu 的新实例,则在a实例上完成的所有工作都是无用的,并且您会看到屏幕上显示的未命名实例。

这样想,写

new FormMenu().Show();

等于写入

FormMenu b = new FormMenu();
b.Show();

结语:
当然,我假设此代码仅用于菜单系统的简单测试。 在实际的业务应用程序中使用固定密码是没有意义的。这里需要改变很多东西才能更专业。首先,您需要一个数据库来存储它们在应用程序中扮演的用户名、密码和角色。然后,您需要为程序提供一种从数据库中读取/写入登录信息的方法,并且不要忘记以散列形式而不是明文形式存储所有密码。(您不希望任何可以查看您存储密码的表的人都可以轻松读取您的密码)