我正在编写一个winforms应用程序,该应用程序在配置文件中本地存储用户名和密码,以便使用该应用程序的用户在每次登录时都不必重新键入其凭据我的应用程序支持的各种服务。密码能够被解密是绝对必要的,所以我选择使用ProtectedData和Protect和Unprotect方法来安全地存储密码。这使得将保护他们的数据的责任传递给Windows和最终用户变得容易,而不必担心密钥和我自己。如何允许导入/导出DPAPI安全凭证
现在我想让用户能够在安装之间移动设置。一个很好的例子就是他们希望保留大量不同帐户设置的备份,或者他们想要移动到另一台计算机。
我算出来是这样的:
- 用户点击“出口占”按钮
- 应用使用解密解除
- 应用程序写入设置明文“存储的设置备份“,然后在新帐户中输入并重新输入。
这一切都听起来不错,直到第3步。第3步让我感到困扰,因为它将密码置于纯文本中。在这种情况下是否有导入/导出凭证的最佳做法,或者将其视为“可以”,以使用户有责任保护导出的文件?对我来说,假设用户正确保护他们的Windows帐户,这似乎可以假设。我甚至不曾允许他们导入/导出设置文件,但这似乎是一个很大的不便。同样,我也可以建立一个非常罕见的边缘案例,即有人拥有如此多的存储帐户,以至于在短短的十年内手动重新输入。
如果任何有经验的人做这样的事情会与最佳实践/建议合作,我会很感激。我不得不处理存储凭证的所有复杂问题。