3

为 Windows 服务存储用户名和密码的最佳方式是什么?

该服务必须能够访问远程计算机上的 MS SQL Server 数据库。我们必须支持 MS SQL Server 身份验证(混合模式)而不是 NT 身份验证。

4

6 回答 6

5

假设 .Net,您可以加密您的配置文件。看到这个

于 2008-11-04T23:55:32.057 回答
2

DP API是在 Windows 上本地存储敏感数据的标准方式。您没有提到您正在使用的编程语言,但在 .NET 中,这是从System.Security.ProtectedData类公开的。

于 2008-11-04T23:28:15.293 回答
0

虽然我同意,理想情况下,您不需要存储此密码,但如果您这样做,则无需自己对其进行哈希处理。加密保护数据。阅读本文底部的警告。不过,我实际上使用LsaStorePrivateData来存储密码。

于 2008-11-04T23:25:11.447 回答
0

没有真正安全的方法来存储您的 Windows 服务的用户名和密码,因此为您用于访问 SQL Server 的帐户提供执行所需操作所需的最低限度的数据库权限非常重要。

编辑:我并不是说您仍然不应该加密用户名和密码 - 您应该使用其他答案中提到的工具之一。

于 2008-11-05T01:59:43.740 回答
0

这取决于您的环境。

该服务是否在不安全的机器上运行?

我们的服务在我们的服务器机房内的服务器上的防火墙内运行,只有管理员才能访问。

我们将此类信息部署到配置文件中,因为我们使用 NT 身份验证直接限制对这些文件的访问。但在这种情况下,运行服务的机器只是一台服务器,而不是用户机器。

于 2008-11-05T12:47:09.770 回答
0

感谢到目前为止的答案:)

最好的方法似乎是使用使用以下类加密用户名和密码的配置文件:System.Security.Cryptography.ProtectedData

这里有一个很好的背景解释:Windows Data Protection

于 2008-11-05T14:15:29.357 回答