c# - 在 MVC View 之间持久保存数据的最标准方法是什么?

标签 c# asp.net-mvc asp.net-mvc-3 security

我正在使用 ASP.NET MVC 创建一个系统来填写在线求职申请。这实际上只是一个熟悉 MVC 框架的实验。我绝对不是安全专家,所以我只是想在这里得到一些建议,因为这个网络应用程序将处理敏感信息。

系统有一组类似于向导的 View 。您从一个 View 转到下一个 View ,填写相关信息,直到最后提交。

每个职位申请都使用 GUID 主键存储在数据库中。现在我只是将该 GUID 存储在每个页面 View 的隐藏字段中。这使得像这样更新 Controller 中的模型变得容易:

[HttpPost]
public ActionResult ExampleAction(FormCollection formValues)
{
    Guid appId = new Guid(Request.Form["ModelId"]); // the GUID stored in the hidden field
    ExampleModel example = db.Entities.Single(e => e.ModelId == appId);

    UpdateModel(example, formValues);
    db.SaveChanges();

    return RedirectToAction("ExampleAction2", new { appId = appId.ToString() });
}

我知道这并不安全,因为任何具有任何开发经验的人都知道您可以在任何浏览器的开发人员工具中编辑隐藏字段的值。那么,安全地获得相同结果的推荐方法是什么?

最佳答案

您应该将其存储在 Session 对象中。这样,您可以随时随地调用它,并且它永远不会显示在您的任何 View 中。 文档:http://msdn.microsoft.com/en-us/library/ms178581.aspx

关于c# - 在 MVC View 之间持久保存数据的最标准方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11532082/

相关文章:

c# - 代码契约和继承(覆盖方法的前提条件)

c# - Entity Framework 实体不在 DataSpace.OSpace (_workspace.GetItemCollection(DataSpace.OSpace)) 但在 DataSpace.CSpace

javascript - Ajax 请求 asp.net mvc Controller 返回 500 - 内部服务器错误

javascript - 在没有 SPA 的情况下使用 BreezeJS

c# - 如何让 VS 假定所有内容默认都是公开的

javascript - 向 ASP MVC 结果注入(inject)一些内容

c# - 获取空错误 LINQ;那么不能使用?

asp.net-mvc - ASP.NET MVC 3 - 区域不工作

javascript - ajax post 在没有警报消息的情况下无法工作

c# - JSON 序列化函数返回空字符串