这里有个问题。我有一个程序,当它启动时会弹出loginForm对话框。现在在这个loginForm上我添加了一个rememberMe(onthoudMij)按钮。因此,如果用户选择此框登录,关闭程序然后再次打开它,他的用户凭证将已填写。
这是我的loginButton代码。
private void loginButton_Click(object sender, EventArgs e)
{
try
{
var sr = new System.IO.StreamReader("C:\\" + inlogNaamTextbox.Text + "\\Login.txt");
gebruikersnaam = sr.ReadLine();
passwoord = sr.ReadLine();
sr.Close();
if (gebruikersnaam == inlogNaamTextbox.Text && passwoord == inlogPasswoordTextbox.Text)
{
classUsername.name = inlogNaamTextbox.Text;
MessageBox.Show("Je bent nu ingelogd!", "Succes!");
this.Dispose();
}
else
{
MessageBox.Show("Gebruikersnaam of wachtwoord fout!", "Fout!");
}
}
catch (System.IO.DirectoryNotFoundException ex)
{
MessageBox.Show("De gebruiker bestaat niet!", "Fout!");
}
}
现在我的问题是:
我在网上搜索了关于记住我实现的选项,但是他们总是使用SQL数据库等。我只有一个存储用户名&您可以在代码中看到txt文件中的密码。
问题是......
所以我的问题不是;我怎样才能实现这个记住我的复选框?我已经知道我应该使用System.Net,但是如果没有sql数据库或类似的东西,还有什么可以工作呢?
答案 0 :(得分:0)
如果您的问题是保存部分,您可以使用类似3DES加密的方法来保存用户名和密码。
您可以使用当前代码并添加类似于此SO文章中的内容来加密和解密密码:How to implement Triple DES in C# (complete example)
如果问题只是如何阅读/保存?
我会创建一个文本,如下所示:
private void CallOnFormLoad()
{
string[] allLines = File.ReadAllLines(@"C:\passwordfile.txt");
if (allLines.Length > 1)
{
// at least one 2 lines:
inlogNaamTextbox.Text = allLines[0];
inlogPasswoordTextbox.Text = allLines[1];
}
}
private void loginButton_Click(object sender, EventArgs e)
{
try
{
var sr = new System.IO.StreamReader("C:\\" + inlogNaamTextbox.Text + "\\Login.txt");
gebruikersnaam = sr.ReadLine();
passwoord = sr.ReadLine();
sr.Close();
if (gebruikersnaam == inlogNaamTextbox.Text && passwoord == inlogPasswoordTextbox.Text)
{
classUsername.name = inlogNaamTextbox.Text;
MessageBox.Show("Je bent nu ingelogd!", "Succes!");
File.WriteAllLines(@"C:\passwordfile.txt", string.Format("{0}\n{1}", inlogNaamTextbox.Text, inlogPasswoordTextbox.Text))
// Don't call Dispose!
// this.Dispose();
}
else
{
MessageBox.Show("Gebruikersnaam of wachtwoord fout!", "Fout!");
}
}
catch (System.IO.DirectoryNotFoundException ex)
{
MessageBox.Show("De gebruiker bestaat niet!", "Fout!");
}
}