在ASP.NET(不是核心)中,我通常会将一个machineKey添加到web.config中,这样我就可以在本地机器而不是服务器上执行某些功能,这样数据库/回调操作就会使用相同的键.例如
<system.web> <machineKey validationKey="*********" decryptionKey="*********" validation="HMACSHA256" decryption="AES" /> </system.web>
有人可以建议如何在ASP.NET Core 2.0中完成这项工作吗?
解决方法
你现在需要使用
DataProtection APis:
The ASP.NET Core data protection stack provide a simple,easy to use cryptographic API a developer can use to protect data,including key management and rotation.
样品可以在DataProtection repo官方找到.
顺便提一下,同样的方法适用于ASP.NET:Replacing <machineKey>
in ASP.NET
数据保护系统基于两个核心概念 – 数据保护提供程序(由IDataProtectionProvider接口表示),用于通过CreateProtector方法创建数据保护程序(由IDataProtector接口表示).数据保护器用于加密和解密数据.
要将IDataProtectionProvider注册到DI,请使用.AddDataProtection方法:
public void ConfigureServices(IServiceCollection services) { // Adds data protection services services.AddDataProtection(); ... }