2012-01-03 80 views
0

我試圖編寫一個程序,該程序將獲得當前的用戶名和域名,然後要求用戶輸入他/她自己的密碼用於安全目的,如果它驗證,那麼它將引導用戶到主程序。即使我沒有存儲密碼,程序是否可以存儲密碼?

我的問題是用戶退出後,程序會將用戶名,域名或密碼存儲在緩存中。或者它不會在計算機中存儲任何內容。

如果它將它存儲在緩存中。在用戶退出程序後,如何確保這些內容都不會在程序中的任何位置存儲。

編輯

我使用using System.Security.Principal;來獲取用戶名和域名。

至於密碼我使用窗體窗體要求用戶輸入密碼。

目前我只是窗口形式的程序而不是web編程。

謝謝

+0

您使用LDAP進行驗證嗎? – 2012-01-03 21:14:44

+0

您必須在應用程序退出之前將您存儲用戶/傳遞數據的變量的內存空間清零。 'password ='thisisnottherealpassword';'覆蓋實際值。如果數據所在的內存空間碰巧交換到磁盤,那麼您將在磁盤上存儲值,直到交換空間的特定位被覆蓋,等等。 – 2012-01-03 21:14:47

+1

Metro?的WinForms? WPF? Silverlight的? ASP.Net? MonoTouch的? – SLaks 2012-01-03 21:14:53

回答

2

如果您害怕將這些信息保存在內存中,您可以查看SecureString類。

0

這假設程序是網絡軟件...

在用戶的瀏覽器可能會保存它,如果他們告訴自己的瀏覽器來存儲密碼。作爲該軟件的開發者,你無能爲力。

除非您明確地讓軟件將密碼寫入服務器上的某種存儲(文件,數據庫,memcached等),否則密碼將不會存儲在您的程序中。

+0

該程序不是一個網絡軟件,而是一個使用窗體的常規C#程序。 – yyc2001 2012-01-03 21:23:04

+0

在編輯你的問題,你說你使用ASP.NET,而不是Windows窗體。 – Jason 2012-01-03 21:25:03

+0

@Jason對不起,我對C#還很陌生。其實我正在使用Window Form。我已經修好了。 – yyc2001 2012-01-03 21:28:31