2012-01-03 49 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