我希望在将数据保存到数据库之前加密数据。对数据的访问由应用程序控制。因此,任何具有Admin角色的人都应该能够看到数据。我希望能够保护用于加密/解密数据的加密密钥。我不想使用DPAPI机器密钥,因为服务器托管多个应用程序。
我想知道是否可以创建服务帐户并使用该帐户的登录凭据来加密web.config文件中的密钥。
由于
答案 0 :(得分:2)
好的,答案是肯定的,不是取决于你的筹码..
如果您在IIS 7上托管,那么您应该能够使用专用的应用程序池并使用新的LoadUserProfile功能 - 这将允许DPAPI使用用户存储。
IIS 6没有那个功能,严格的答案是没有 - 但微软提供了一个很好的例子来说明如何获得类似的最终结果。他们使用服务进行加密/解密,因为Windows服务控制管理器加载用户配置文件(从而允许DPAPI工作)
它的阅读时间相当长,但应该这样做:
Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication