我已經創建了一個登錄表單應用程序,表單有兩個文本框一個接受用戶名,另一個接受密碼,用戶名和密碼已存儲在名爲「Registered.txt」的文本文件中有一個名爲login的按鈕,我希望我的程序能夠讀取「Registered.txt」文件,以檢查用戶是否單擊使用隨機訪問文件登錄時,密碼或用戶名輸入是否有效。隨機訪問文件
隨機訪問文件
回答
我舉個例子,希望它能幫助你得到你想要的。
在這個例子中你Registered.txt文件應該是這樣: Smartsasse,MYPASSWORD OlofBoll,P @提供ssword
//var path = @"C:\Registered.txt";
var path = "Registered.txt";
var allLines = System.IO.File.ReadAllLines(path);
var userInfo = allLines.Select(l => l.Split(',')).Select(s => new
{
Username = s[0],
Password = s[1]
}).ToList();
var user = userInfo.FirstOrDefault(ui => ui.Username.ToLowerInvariant() == this.UserNameTextBox.Text.Trim().ToLowerInvarant());
if (user != null && user.Password == this.PasswordTextBox)
{
// Login is okay
this.ViewState["loggedInUser"] = user.Username;
}
else
{
// Show error message
throw new Exception("Couldn't login, invalid username or password.");
}
您將需要通過「使用System.Linq的引用 「System.Linq的」; 」。如果沒有,你可以改變一些代碼來:
bool success = false;
foreach (var line in allLines)
{
var username = line.Split(',')[0];
var password = line.Split(',')[1];
if (username == this.UserNameTextBox.Text && password == this.PasswordTextBox.Text)
{
// Login
// this.ViewState["loggedInUser"] = user.Username;
success = true;
break;
}
}
if (success == false)
{
// Show error
throw new Exception("Couldn't login, invalid username or password.");
}
此代碼不會被它自己剛剛運行,但可能會幫助你得到你想要的東西。
首先,正如Edi G.在評論中提到的那樣 - 在純文本文件中存儲用戶名和密碼是非常糟糕的主意。這種方法的安全性絕對爲零。
但是,如果你仍然想嘗試 - 在這裏一些指導。
要從文件中讀取文本數據,您需要創建FileStream
指向您的文件並StreamReader
從該流讀取。
using (var fs = new FileStream(@"path_to_your_file\Registered.txt", FileMode.Open))
{
using (var reader = new StreamReader(fs))
{
var line = reader.ReadLine();
while (line != null)
{
// do your checks here
line = reader.ReadLine();
}
}
}
將用戶名和密碼存儲在文本文件中是非常糟糕的做法,但安全性不需要爲「絕對零」,因爲您可以限制訪問該文件,只是因爲它是一個純文本文件,其中的信息可以被加密。但是,是的,還是非常糟糕的做法。 – Sasse 2014-09-26 09:52:27
感謝所有的答案,你們是最好的,非常感謝你 – 2014-09-26 09:54:26
@Sasse嗯,在這種情況下,限制對文件的讀訪問是不可能的,因爲程序需要從中讀取並且程序在某些用戶的憑證下運行。這樣用戶將能夠從文件中讀取。 :)所以只有加密才能提供幫助,但它沒有OP的問題範圍。 – 2014-09-26 09:57:44
- 1. 隨機訪問gzip文件?
- 2. 隨機訪問文件visual basic 2012
- 3. 覆蓋隨機訪問文件
- 4. Android應用隨機訪問文件apk
- 5. 隨機訪問文件FileLock:java.io vs. java.nio
- 6. 「隨機」訪問C#中的大文件
- 7. 閱讀隨機訪問文件
- 8. 使用隨機訪問文件Java中
- 9. 隨機訪問加密文件
- 10. .net文件隨機訪問recoard鎖定
- 11. 刪除隨機訪問文件Java中
- 12. Java隨機訪問文件輸入流
- 13. C++中的隨機訪問文件
- 14. 附加隨機訪問文件
- 15. 隨機訪問文件如何工作
- 16. 嘲笑一個隨機訪問文件
- 17. Java的定長隨機訪問文件
- 18. J2ME中的文件隨機訪問
- 19. 使用隨機訪問文件的EOFException
- 20. 隨機訪問文件的Java
- 21. PHP中的隨機訪問文件
- 22. 隨機訪問圖像(圖片)文件
- 23. Avro hadoop隨機訪問文件
- 24. 訪問C中隨機目錄中的隨機文件#
- 25. 從C++中的隨機訪問文件讀取訪問衝突
- 26. 如何訪問VB.NET中的隨機訪問文件
- 27. GridFS隨機訪問
- 28. 隨機訪問DocumentFile
- 29. OpenMesh隨機訪問
- 30. php文件隨機訪問和文件保存對象
你有哪些麻煩? – 2014-09-26 09:32:33
你到目前爲止嘗試過什麼?任何嘗試?你能否展示一些代碼示例並指定發生了什麼問題? – 2014-09-26 09:33:03
「..用戶名和密碼已存儲在文本文件中...」好主意:)提供一些代碼..它會幫助我們幫助你... – 2014-09-26 09:35:35