在WinForms应用程序中存储身份验证设置的最佳机制是什么

时间:2008-11-05 11:28:14

标签: c# .net winforms email-integration

我有一个应用程序将使用System.Net.Mail和System.Net.NetworkCredential发送经过身份验证的电子邮件我的问题是我应该如何存储创建NetworkCrednetial对象所需的密码?

该应用程序没有登录但我可以设置一个允许用户输入其电子邮件凭据的选项(几乎在所有情况下,这将是他们的Windows登录)。我无法使用Active Directory,因为并非每个客户都使用它。

我可以从用户那里获取密码,然后将其保存到用户注册表,文件或数据库。显然我必须加密它。我对加密技术不是很熟悉所以如果人们认为这是最好的机制,我们会很感激。

我的偏好是避免必须存储任何内容,所以无论如何我可以自己存储凭据,也许我可以从当前登录或其他地方获取它?

2 个答案:

答案 0 :(得分:3)

要存储用户名和密码(在Windows中),请使用DPAPI。它的.Net接口是ProtectedData和ProtectedMemory类。

但首先,您可以尝试UseDefaultCredentials或DefaultNetworkCredentials适用于您的环境。

答案 1 :(得分:0)

您还可以使用Win32凭据UI - 在.NET中存在许多样本,包括this one on MSDN