C# Net核心查询字符串加密
我正试图按照以下思路做一些事情:C# Net核心查询字符串加密,c#,asp.net,encryption,asp.net-core,query-string,C#,Asp.net,Encryption,Asp.net Core,Query String,我正试图按照以下思路做一些事情: 私有IDataProtector\u保护器 public PieController(IPieRepository pieRepository, ICategoryRepository categoryRepository, IDataProtectionProvider provider) { _pieRepository = pieRepository; _categoryRepository = categoryRepository;
私有IDataProtector\u保护器代码>
public PieController(IPieRepository pieRepository, ICategoryRepository categoryRepository, IDataProtectionProvider provider)
{
_pieRepository = pieRepository;
_categoryRepository = categoryRepository;
_protector = provider.CreateProtector(GetType().FullName);
}
public IActionResult Details(int id)
{
var pie = _pieRepository.GetPieById(id);
pie.PieId = _protector.Protect(pie.PieId.ToString());
if (pie == null)
return NotFound();
return View(pie);
}
我试图在查询字符串中加密PieId,以便它不会显示给用户。由于IDataProtector
仅适用于字符串
,因此我在试图找到插入PieId的方法时遇到了问题,PieId是int
。有什么建议吗
我试过:
pie.PieId=Int32.Parse(_protector.Protect(pie.PieId.ToString())
和pie.PieId=Convert.ToInt32(_protector.Protect(pie.PieId.ToString())代码>但两者都不起作用
我是以这个例子为基础的 你需要加密还是只是混淆?@maccettura我需要能够生成加密的查询字符串,并能够解密所述查询字符串以处理数据…@Milo你不能这样做:IDataProtector.Protect()返回的密文不能转换为整数。您应该在模型中使用字符串,或者使用专用视图模型,将饼图标识符显示为字符串。@Pinpoint谢谢,我将尝试ViewModel方法。顺便问一下,是否有任何不好的理由将对象id作为字符串而不是int
?