我刚刚开始使用MVC,我想知道在视图中传递ID等敏感信息的最佳做法......
我们假设我有一个场景。 我有一个管理MVC应用程序的汽车服务,允许用户为他们的注册汽车选择产品。
用户必须在选择产品进行服务之前先注册他们的汽车。
在注册视图中,他们会填写汽车详细信息,并在点击提交按钮时重定向到购买产品页面。当他们点击提交按钮时,我们会存储带有用户ID的汽车详细信息(我可以从身份获取)并从数据库中生成唯一的汽车ID。我想将这个新创建的车牌ID传递给下一个视图。
在购买产品页面中,他们可以选择不同的产品A或B,当他们选择时,会重定向到结帐页面。
我现在想要实现的是在结账页面,我们如何安全地携带用户在从以前的产品视图注册汽车和产品ID后获得的汽车ID,以便我可以使用userID,carID和的productID。
会话方式是否适用于此?或者任何其他更好的方法来解决这个问题。 有一个小例子的人会对我有很大的帮助。
谢谢,
答案 0 :(得分:1)
在您给出的示例中,我当然建议将ID存储在会话中。网络是一种无国界的野兽,你在做的事情就是在用户访问网站/应用程序期间记录状态 - 这基本上就是会话的目的。
从会话中创建,存储和检索数据很简单,可以这样完成:
在会话对象中设置变量
[HttpPost]
public ActionResult Login(int carId)
{
...
Session["carId"] = carId;
...
}
从Session对象中检索变量
public ActionResult Load()
{
...
int carId = Session["carId"];
...
}
虽然这是一个基本示例,但它可以让您了解如何从会话中存储/检索简单类型的数据。
要存储更多信息(如大型对象),您可以使用[Serialize]
类属性outlined in my answer in this post。