直接从winform c#中的.txt文件登录

本文关键字:txt 文件 登录 中的 winform | 更新日期: 2023-09-27 18:00:23

我正在进行winform项目。在我的场景中,我将用户的usernamepassword保存到名为credentials.txt.txt文件中。现在我希望,当我第一次打开我的应用程序时,这意味着credentials.txt是空白的。我必须在登录表单中输入用户名和密码。但当我关闭应用程序和login agian时,我的login form应该从.txt文件中读取用户名和密码,然后直接用它登录。未打开login form

我已将用户名和密码保存在.txt文件中。但不知道如何执行下一步。

我在.txt文件中保存凭据的代码:

private void btnLogin_Click(object sender, EventArgs e)
{
    try
    {
        string Log_API = "http://api.retailbutton.co/WS/Service.php?Service=employeeLogin";
        if (LoginUser(Log_API))
        {
            logIn_Status = "true";
            GlolbalUtil.LogIn_Status = logIn_Status;
            this.Hide();
            string credentialPath = Environment.CurrentDirectory + "''credentials''credentials.txt";
            using (StreamWriter writer = new StreamWriter(credentialPath, true))
            {
                writer.WriteLine("UserName :" + txtUsername.Text + Environment.NewLine + "Password :" + txtPassword.Text);
            }
            frmDash frmDash = new frmDash();
            frmDash.Owner = this;
            frmDash.Show();
            txtUsername.Text = "";
            txtPassword.Text = "";
            //GlolbalUtil.accept_status = "1";
        }
        else
        {
            MessageBox.Show("Please Check Username and password");
        }
    }
    ...

直接从winform c#中的.txt文件登录

首先,我建议您以更简单的方式保存用户名和密码,这样读取应该更容易。

writer.WriteLine(txtUsername.Text); 
writer.WriteLine(txtPassword.Text);

在您的登录表单加载程序上这样保存后:

var credentialLines = File.ReadAllLines(...your path...);
if(credentialLines.Any())
{
    var username = credentialLines[0];
    var password = credentialLines[1];
    /// Create an overload for your LoginUser method 
    /// so it can take credentails as parameteres
    if (LoginUser(Log_API, username, password))
    {
        logIn_Status = "true";
        GlolbalUtil.LogIn_Status = logIn_Status;
        //... other codes for authorization
        //... navigate to your main control maybe
        return;
    }        
}
LoginForm.Show();

这样就可以了。

p。S.以明文格式保存用户凭据不是实现remember me目的的最佳方式。相反,首先用可靠的加密算法加密用户名-密码元组,然后在读取时对其进行解密。在使用用户凭据时,应该非常小心地处理这一问题。

在导航到登录表单之前,您需要读取.txt文件,验证凭据,如果验证成功,则导航到主页面,否则再次导航到登录页面。您可以使用下面的代码来读取文件

  string[] lines = System.IO.File.ReadAllLines(@"your file location");