2011-03-16 184 views
0

我有一個Windows窗體應用程序。有一個複選框記住我。現在我想如果選中此框,則用戶名將保存在本地計算機上的某個文件中,以便可以在一段時間後使用。還要如何閱讀該文件,以便在表單再次啓動時自動設置用戶名&如何保存用戶名和密碼?

+5

最佳實踐:** ** NEVER存儲密碼 – 2011-03-16 10:24:32

+0

@ Marc_s: - 那麼我應該怎麼做才能達到this.when用戶打開它應該有預填充字段,即用戶名和密碼的應用程序 – Prachur 2011-03-16 10:26:27

回答

1

或者其他簡單的方法是雙方在一個文本文件中寫入。但不要忘記加密密碼。

您可以決定使用第一行作爲用戶名,第二行使用密碼。


public void SaveUserPass(string username, string password) 
{ 
    using (var credentialFile = new StreamWriter("credentials.txt", false)) 
    { 
    credentialFile.WriteLine(username); 
    credentialFile.WrtieLine(password); // Please save encrypted! 
    } 
} 


public void ReadUserPass(out string username, out string password) 
{ 
    using (var credentialFile = new StreamReader("credentials.txt", false)) 
    { 
    var lines = credentialFile.ReadLine(); 
    username = lines[0]; 
    password = lines[1]; // don't forget to decrypt if you have encrypted before! 
    } 
} 

而不是使用了參數,你可以拆分爲用戶名和同一類的密碼或使用性能的方法,或使自己的類的arguemtns的。隨你便。上面的代碼只是一個簡單的例子!

親切的問候

+0

提醒,這只是一個簡單的例子,而不是最佳實踐。我完全同意其他參與者 - 不要以這種方式保存密碼,可能根本就不保存密碼! – dannyyy 2011-03-16 10:48:16

+0

請告訴我是否username = lines [0];這將被直接讀取,或者是字符形式,我們必須將其轉換爲字符串 – Prachur 2011-03-16 11:52:18

+0

ReadLine()返回一個字符串數組。括號中的數字表示數組索引。 .NET框架有一個寫得很好的API文檔。你可以看看嗎?! – dannyyy 2011-03-16 14:26:36

2

我不知道它的好的做法與否。但你可以使用Project - > Settings來做到這一點。所以你可以作爲屬性訪問值。請確保您對其進行加密;)

1

首先你可以使用ISO的 - 分離的存儲空間來存儲密碼,這裏有一個關於如何使用它快速教程ISO

另一件事是,你應該存儲加密的密碼或它的散列版本,但從來沒有以純粹的形式保存密碼

1

我同意不應該保存密碼的評論。

如果您確實想要存儲與應用程序相關的用戶設置,則可以使用獨立存儲。

更多信息:When to use IsolatedStorage