c# - Asp.net Core IDataProtectionProvider 对于不同的应用程序是不同的?
问题描述
我正在开发一个应用程序,它由一些核心组件组成,例如 Core、Infrastructure、MVC 和 Console Application。我的应用程序核心库中有以下类
public class CustomIDataProtection
{
private readonly IDataProtector _protector;
public CustomIDataProtection(IDataProtectionProvider protectionProvider)
{
_protector = protectionProvider.CreateProtector("test123");
}
public string Encode(object currentObject)
{
var serilazedObject = JsonConvert.SerializeObject(currentObject);
var protectedData = _protector.Protect(serilazedObject);
return protectedData;
}
public string Decode(string data)
{
try
{
var unprotectedData = _protector.Unprotect(data);
var desearlizedObj = JsonConvert.DeserializeObject<string>(unprotectedData);
return desearlizedObj;
}
catch (Exception ex)
{
throw ex;
}
}
我将上述类注入控制台应用程序并编码一些这样的数据
注册服务
var serviceCollection = new ServiceCollection();
serviceCollection.AddSingleton<CustomIDataProtection>();
注射服务
private readonly CustomIDataProtection _protector;
_protector = scope.ServiceProvider.GetService<CustomIDataProtection>();
编码数据:
var value = "test";
var password = _protector.Encode(value);
现在编码后我将它保存在数据库中。之后,我切换到我的 MVC 应用程序并尝试通过控制台应用程序解码该编码数据,但我的解码代码失败。给我错误
有效载荷无效
我想知道为什么它给我一个错误?当我在控制台应用程序中编码并在同一个应用程序中解码时,它工作正常。但是当我在控制台应用程序中编码并尝试在 MVC 应用程序中解码时,它给了我一个错误。
解决方案
推荐阅读
- bixby - BixBy:不将自己声明为“库”并且将来不会被导入
- javascript - 如何在按下按钮时开始 setInterval 而不会破坏 clearInterval 内部功能?
- python - 常量python类
- c# - 处理数据时显示对话框
- swift - 多个异步的 Swift 崩溃
- .net - 如何使用mongo changestream diff
- apache-flink - 有没有办法将数据集的多个值与左外连接(Flink)中另一个数据集的单个值进行比较
- android - 每次我在 npm install 后运行 react-native run-android 时,此错误都会不断出现
- c++ - 使用 C++ 的 Array 中的非静态成员引用错误
- javascript - 如何在 Nest.js 中存储、读取和删除 cookie 和会话