C#如何在应用程序中存储密码

Spa*_*kye 5 c# security

我正在尝试编写一个应用程序,它将被安排每小时从Sharepoint服务器自动下载一个页面.它是一个xml文件.到目前为止一切都有效,除了我不喜欢在我的应用程序中以明文形式存储连接到Sharepoint所需的密码.示例代码:

WebClient client = new WebClient();
String username = "myusername";
String password = "mypassword"
String filename = "C:\\Temp\\" + DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".xml";

client.Credentials = new System.Net.NetworkCredential(username, password);
string credentials =  Convert.ToBase64String(Encoding.ASCII.GetBytes(username + ":" + password));
client.DownloadFile("myurl", filename);
Run Code Online (Sandbox Code Playgroud)

有没有办法如果有人从我的服务器获得可执行文件并使用Reflector对其进行反汇编,那么如何更难以读取我的密码?
我发现了这个: 如何在Winforms应用程序中存储密码?但我并没有真正弄清楚如何在我的应用程序中使用它.

Pat*_*man 6

事实上,你最好不要使用密码.如果服务在正确的凭据下运行,您可以使用以下命令使用该凭据DefaultNetworkCredentials:

所以在你的样本中:

client.Credentials = CredentialCache.DefaultNetworkCredentials;
Run Code Online (Sandbox Code Playgroud)

这将为您提供当前网络用户的凭据,例如DOMAIN\USER.