如何在完整框架的Nuget包中支持.NET Core数据保护?

时间:2019-01-07 21:52:31

标签: .net encryption .net-core nuget

摘要

我有一个用.NET 4.6.1编写的现有Nuget程序包,其中涉及加密cookie值。这是使用MachineEncrypt和MachineDecrypt方法进行加密的。只有完整的框架应用程序使用了此程序包,并且一切正常,但是现在我们有了一个.NET Core应用程序,也将需要使用此程序包。我知道该软件包将需要重写为目标.NET Core,以便与应用程序兼容,但这涉及使用数据保护API .NET Core提供了加密功能,而不是机器加密方法。由于所有应用程序都访问cookie值,因此所有加密都必须相同。我的问题是:我应该如何实施?

我尝试过的东西

我尝试更新现有的完整框架Nuget包以引用.NET Core DLL并实现数据保护方法。使用单元测试,这似乎可以在调试中工作,但是一旦Nuget包被运行在.NET 4.0上的完整框架应用程序占用,我收到的DLL找不到与AspNetCore DLL相关的错误。 Web服务器上已经安装了.NET 4.6.1和.NET Core 2.2.0的必需运行时,但是由于Nuget包以.NET 4.6.1为目标,因此4.6.1运行时是否有可能无法访问数据保护与.NET Core 2.2.0相关的DLL?

代码

找不到DLL错误:

无法加载文件或程序集“ Microsoft.Extensions.DataProtection,版本= 2.2.0.0,区域性=中性”或其依赖项之一。系统找不到指定的文件。

我正在尝试将MachineEncrypt和MachineDecrypt方法转换为此.NET Core非依赖注入的数据保护方法:

https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/introduction?view=aspnetcore-2.2

我期望什么

这个问题似乎很笼统,但我真正想知道的是以下几点:

  1. 如何/如何在完整框架的Nuget程序包中实现.NET Core数据保护?
  2. 如果可以的话,为什么在完整框架应用程序中使用该程序包后为什么却找不到DLL错误?
  3. 如果不能,您能否告知我可用于实现与.NET和.NET Core兼容的数据加密的任何其他方法?

0 个答案:

没有答案