直接从winform c#中的.txt文件登录
本文关键字:txt 文件 登录 中的 winform | 更新日期: 2023-09-27 18:00:23
我正在进行winform项目。在我的场景中,我将用户的username
和password
保存到名为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");
}
}
...
首先,我建议您以更简单的方式保存用户名和密码,这样读取应该更容易。
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");