2014-05-09 7 views
0

여기에서 문제가 발생했습니다. 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

아니요 현재 코드가 문제없이 완벽하게 작동합니다. 나는 로그인 정보를 저장하기 위해 SQL 데이터베이스를 사용하지 않는다는 것을 설명하기를 원했습니다. 나는 그것들을 txt 파일에 씁니다. 이제 loginform에 나를 기억하는 확인란을 구현하는 방법을 알고 싶습니다. 내 양식에 이미 확인란이 있지만이 코드를 사용하는 방법을 모르기 때문에 아직 코드가 없습니다. – RawMeat

답변

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!"); 
    } 
} 
+0

암호를 암호화 할 필요가 없습니다. 이 프로젝트는 모든 사람이 사용자 자격 증명을 볼 수있는 프로젝트입니다. 따라서 보안은 중요하지 않습니다. 나는 다음 프로그램이 시작될 때 동일한 PC를 말하면서 사용자 자격 증명을 기억하기를 원합니다. 그래서 나는 코드가 if (checkbox = checked)로 시작한다고 추측하고있다. 그와 비슷한 것 – RawMeat

+0

@RawMeat : 업데이트를 보라. 폼의 생성자에서'CallOnFormLoad' 메소드를 호출하십시오. –

+0

그 덕분에! – RawMeat