我有一个用.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非依赖注入的数据保护方法:
这个问题似乎很笼统,但我真正想知道的是以下几点: