如何让登录表单引用用户名和密码进行身份验证



新手。

我想做一个应用程序,这是一个简单的窗口形式,这是一个登录窗口。使用数组引用登录用户名和密码。

到目前为止,这是我得到的。似乎遇到了代码错误。我似乎想不明白。

代码给了我一个错误,表示一个布尔值(true或false)。

代码图片:https://i.stack.imgur.com/uvmtP.png

private void btnLogin_Click(object sender, EventArgs e)
    {
        string[] Username = { "user1", "user2", "user3" };
        string[] Password = { "Password1", "Password2", "Password3" };
        if (Username[0].ToString() == Password[0])
        this.Close();
        th = new Thread(opennewform);
        th.SetApartmentState(ApartmentState.STA);
        th.Start();
        if ((txtPasswd.Text == Username) && (txtUser.Text == Password))
        {
            Success_Login Success = new Success_Login();
            Success.Show();
        }
        else
            MessageBox.Show("Enter valid username and/or password");
    }
}
许多谢谢。

你想做什么?

第一个错误

您尝试将用户名文本与密码进行比较以进行验证没有意义

则尝试计算字符串数组和简单字符串之间的相等性。

所以先纠正这个得到答案

给我你

尝试做一些类似

的事情
if(username[0] == txtuser.text && Password[0] == txtpassword.text)
{
 // then your first user can login
}

,但这不是我们在c#中登录的方式密码不能存储在代码中,因为代码可以很容易地读取。

Username和Password是需要使用Array的字符串数组。包含或数组。检查TextBox值是否存在于这些数组中。

if(Array.Contains(Username, txtUser.Text) && Array.Contains(Password, Password.Text))
{
}

或者使用IndexOf

if(Array.IndexOf(Username, txtUser.Text) != -1 && Array.IndexOf(Password, txtPassword.Text)!= -1)
{
}

我认为您需要一个for循环来检查每个用户名和密码。让我写一个愚蠢的简单程序,但可行的登录过程。

我输出:

User=user1, Password=abc login failed!!
User=user2, Password=xxx login failed!!
User user2 login success!!
User user1 login success!!

源代码:

using System;
namespace sam_StreamReader
{
    class Program
    {
        static void Main(string[] args)
        {
            login("user1", "abc");
            login("user2", "xxx");
            login("user2", "Password2");
            login("user1", "Password1");
        }
        static bool login(string p_user_name,string p_password)
        {
            String[] Username = { "user1", "user2", "user3" };
            String[] Password = { "Password1", "Password2", "Password3" };
            for(int i=0;i<Username.Length;i++)
            {
                if(p_user_name == Username[i])
                {
                    if(p_password == Password[i])
                    {
                        System.Console.WriteLine("User "+p_user_name+" login success!!");
                        return true;
                    }
                }
            }
            System.Console.WriteLine("User=" + p_user_name + ", Password="+p_password+" login failed!!");
            return false;
        }
    }
}

希望有帮助~

相关内容

最新更新