C# DPAPI—由用户A创建的加密数据,可以';不能由UserB解密

C# DPAPI—由用户A创建的加密数据,可以';不能由UserB解密,c#,dpapi,C#,Dpapi,我开发了一个控制灯光的主要应用程序。现在我想在客户端站点部署这个应用程序。我将向客户端发送一个包含加密文件(密钥)和用户名(始终为defadmin)的文件,以便首次登录应用程序。创建了一个独立应用程序,该应用程序使用当前用户范围的DPAPI生成加密密钥文件。现在,我想在我的主应用程序中使用DPAPI实现解密代码,以验证客户端对应用程序的访问。我面临的问题是,我(当前用户)创建的加密密钥文件不会被客户端(defadmin)解密。我发现了一个使用漫游用户配置文件和隔离存储的修复方法,即使在阅读了MS

我开发了一个控制灯光的主要应用程序。现在我想在客户端站点部署这个应用程序。我将向客户端发送一个包含加密文件(密钥)和用户名(始终为defadmin)的文件,以便首次登录应用程序。创建了一个独立应用程序,该应用程序使用当前用户范围的DPAPI生成加密密钥文件。现在,我想在我的主应用程序中使用DPAPI实现解密代码,以验证客户端对应用程序的访问。我面临的问题是,我(当前用户)创建的加密密钥文件不会被客户端(defadmin)解密。我发现了一个使用漫游用户配置文件和隔离存储的修复方法,即使在阅读了MSDN文章后,我也不太确定如何实现。此外,我还了解到,允许在内部网上使用用户隔离和程序集,但在internet上不允许。这是否意味着将漫游用户配置文件存储在网络中的某个位置并允许客户端访问?请提供帮助以解决此问题,如果您能提供一些示例代码片段,我们将不胜感激。

DPAPI是一个基于Windows(用户或机器级别)的加密和解密提供程序,用于在该域中安全存储敏感信息。它的域是“本地”的,绑定到单个用户配置文件(或机器实例)并用于共享其数据


如果您想在不同的用户、机器之间安全地共享数据,您可能想了解一下非对称加密概念(公钥加密),就像SSH、OpenPGP、s/MIME正在使用它一样。

忘了提一下。我已经用c#开发了我的应用程序。