gpt4 book ai didi

asp.net - 在具有用户存储的 Web 场环境中使用 DPAPI/ProtectedData

转载 作者:行者123 更新时间:2023-12-01 00:29:21 26 4
gpt4 key购买 nike

我想知道是否有人在网络农场环境中成功地将 DPAPI 与用户存储一起使用?

因为我们的应用程序是最近从 1.1 转换为 2.0 ASP.NET 应用程序,所以我们使用了直接调用 CryptUnprotect 的自定义包装器。方法。但这应该与 ProtectedData 相同2.0 框架中可用的方法。

因为我们在网络农场环境中运行,所以我们不能保证进行加密的机器将是解密它的机器。 (也因为机器故障不应该破坏我们的加密数据)。

因此,我们拥有的是一个服务组件,它在我们每个 Web 框上的特定用户帐户下运行在服务中。根据建议,此用户设置为具有漫游配置文件。

我们遇到的问题是在一台机器上加密的信息无法在另一台机器上解密,这会因 win32 错误而失败:

'Key not valid for use in specified state'.



我怀疑这是因为我在多台机器上以用户身份运行加密服务时犯了一个错误,因此让用户同时登录多台机器。

如果这是问题,其他人如何在 Web 场环境中将 DPAPI 与用户存储一起使用?

最佳答案

在 Web 场环境中,不是使用 DPAPI 直接加密/解密您的数据,而是使用它来加密 key 稍后用于解密 protected 数据。

作为部署过程的一部分,您可以将 key “安装”到每台服务器上。安装脚本需要在 AppPool 的身份下运行,并且可以将加密的 key 存储在 app.config 文件或注册表中。

加密数据本身可以存储在中央存储库/数据库中,以便场中的所有服务器都可以访问它。为了解密数据,Web 应用程序将从安装位置检索加密 key ,使用 DPAPI 对其进行解密,然后使用结果解密来自中央存储库的数据。

缺点是在初始安装过程中,明文 key 可能会在本地磁盘上存在一小段时间,在那里它可能会暴露给操作人员。如果担心的话,您可以添加额外的加密层,例如使用 web.config machineKey。

关于asp.net - 在具有用户存储的 Web 场环境中使用 DPAPI/ProtectedData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/201863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com