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

Mic*_*cki 6 .net c# email-integration winforms

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

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

我可以从用户那里获取密码,然后将其保存到用户注册表,文件或数据库.显然我必须加密它.我不是很熟悉加密,所以如果人们认为这是最好的机制,一些指针会受到赞赏.

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

GvS*_*GvS 3

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

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