我应该如何用c#编写登录代码?

我应该如何用c#编写登录代码?,c#,login,credentials,C#,Login,Credentials,我对这个代码有问题。这是软件的登录。我想限制每个员工的访问权限。但它不起作用。实际上,当加载菜单时,我将启用=false所有选项 这是表单后面的代码。表单有2个文本框,其中一个用于用户名,另一个用于密码,并有一个输入按钮 private void Enter_Click(object sender, EventArgs e) { if (txtPassword.Text == "10") { FormMenu a = new

我对这个代码有问题。这是软件的登录。我想限制每个员工的访问权限。但它不起作用。实际上,当加载
菜单时,我将
启用=false
所有选项

这是表单后面的代码。表单有2个
文本框
,其中一个用于
用户名
,另一个用于
密码
,并有一个
输入
按钮

    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");



    }

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

}

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

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

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

用这种方式思考,写作

new FormMenu().Show();
等于写

FormMenu b = new FormMenu();
b.Show();
最后一句话:

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

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


然后在代码中,您可以接受用户输入,并将这些值与数据库值进行检查

不要硬编码密码。他们。然后使用模式定义菜单可访问性。我这样做了,a.show代替了上一个代码,但还不能为10号用户启用选项,我现在该怎么办?是的,很简单!我不是一个专业的程序员,我只是一个学生。我有用户名和密码的sql表。@Eli如果您想了解如何使用数据库表完成此操作,您可以轻松找到数千个示例。谢谢!你能给我举个例子吗?非常高级:,基本的数据库查找,但实际上只要搜索一下,你就会找到大量的资源
FormMenu b = new FormMenu();
b.Show();