【问题标题】:How to decrypt data before the view?如何在查看之前解密数据?
【发布时间】:2019-12-25 11:55:22
【问题描述】:

如何在字段显示在视图中之前对其进行解密?现在我正在调用该方法来加密该字段,然后将该加密保存在数据库中,然后在我想解密该值以便它在视图中正确显示之后。加密和解密方法都有效,如上所述的问题是我不知道在视图加载之前在哪里调用解密函数。

我希望在显示此视图时完成解密

public ActionResult Item()
{
   Repository rep = new Repository();
   var getItems = rep.GetItems();
   return View(getItems);
}

【问题讨论】:

  • 您应该在将其传递给视图之前解密(return View(getItems); 行(不在您的存储库类中,创建一个将处理加密/解密任务的服务)
  • @C1sc0 是的,我已经这样做了,但问题是视图获取了加密数据,因此我需要解密而不是显示解密结果而不保存它
  • 创建一个名为 Crypt 的服务,将整个 Repository 传递给它的构造函数(new Crypt(rep);),并在 crypt 类中创建一个方法,将其命名为(GetDecryptedItems),并查询其中的项目它,解密必要的文件,并返回它们(var getItems = crypt.GetDecryptedItems();),此时所有字段都是解密的形式,你不应该解密视图中的文件...
  • @C1sc0 谢谢,但我只需要解密一个字段
  • 您能否向我们展示您的模型并说明加密的字段...您能否也向我们展示您的解密方法。

标签: c# asp.net asp.net-mvc asp.net-mvc-5


【解决方案1】:

当你有服务层时,应该在服务层以其他方式解密在Item action或Item.cshtml(查看文件)中解密

【讨论】:

  • 不太明白你在说什么。我应该在 Item.cshtml 中调用解密吗?
  • 在以@开头的代码块中。例如 @{ 在这里解密方法 }
  • @{decription(item.Name)} 我已经这样做了,但它给了我一个错误,我应该在视图中包含其他内容吗?
  • 就像它给我一个错误,说该方法在该上下文中不存在,我需要添加一些标题吗?
  • 是的,在 Item.cshtml 或 _ViewImports.cshtml 中添加 @using
猜你喜欢
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-16
  • 1970-01-01
相关资源
最近更新 更多