我有许多工作站,它们是我的域的一部分,每个工作站运行一些.NET应用程序。一个中央服务器存储我希望通过密钥加密的秘密,该密钥可供系统中具有适当用户组的所有用户访问。
我发现.NET确实提供了DPAPI的包装器,但我想知道DPAPI-NG是否同样适用于NCAPptProtectSecret和NCreatProtectionDescription的包装函数。此外,我将如何配置描述符,以便只允许来自我的域的特定用户组解密秘密?
如果没有包装器,我必须导入ncrypt.dll并使用它。任何有此库经验的人都可以确认此网址是否包含最新的API https://msdn.microsoft.com/en-us/library/windows/desktop/hh706795(v=vs.85).aspx?
答案 0 :(得分:0)
我发现.NET确实提供了DPAPI的包装器,但是我想知道是否同样适用于DPAPI-NG,其中NCryptProtectSecret存在包装函数
NCryptProtectSecret
在referencesource.microsoft.com上没有点击。所以很可能框架中不存在这样的包装器API。
对此库有使用经验的人是否可以确认此网址是否具有最新的API https://msdn.microsoft.com/en-us/library/windows/desktop/hh706795(v=vs.85).aspx?
Win32中的功能签名永远不会改变。文档可能在散文中有错误,但几乎从不在API表面。最好的方法是找到它声明的头文件的副本,但实际上通常只有在a)引用了一个命名常量但没有提供值或b)你P / Invoke时才需要这样做并崩溃,并试图找出原因。
快速搜索显示https://github.com/NuGet/NuGet.Operations/blob/master/src/NuGet.Services.Operations/Secrets/DpapiNg/NativeMethods.cs有P / Invoked这些。如果NuGet的Apache许可证与您的使用/需求兼容,您可以将您的结论与他们的结论进行比较。