将**敏感数据**从一个动作方法控制器传递到另一个控制器动作方法控制器的最佳方法是什么
What is the best way to pass the **sensitive data** from one action method controller to another controller action method controller
这里我使用 TempData["Amount"]
将购物车总金额从一个控制器操作传递到另一个操作方法。所以我怀疑使用 TempData["Amount"]
将 sensitive 信息从一个操作方法传递到另一个操作方法的良好做法。时间数据的生命周期是多少(比如 sessions
20 分钟)以及如何处理 TempData["Amount"]
.
的异常
if (adoptionDetails != null)
{
foreach (var m in adoptionDetails.animalAdaptionDetails.ToList())
{
amount += Convert.ToInt32(m.amount);
animalNames += m.name;
animalNames += ",";
}
ViewBag.Amount = amount;
ViewBag.animalsName = animalNames;
TempData["Amount"] = amount;
return View(adoptionDetails);
}
else
{
return View("~/Views/Users/Errorpage.cshtml");
}
TempData 通过将 Session 绑定到用户的相同逻辑绑定到用户。
TempData 仅适用于同一会话发送的下一个请求,之后会自动删除。
TempData 保存在服务器中 in-memory,只有当您将其插入到响应中时,它才会传输到客户端。
你可以换一种方式开始思考。
您有一些用户数据,无论它是什么,您需要在多个地方为您的应用程序提供这些数据。一种选择是会话,它是用户绑定的,它是短暂的并且只要您不在其中存储太多东西就可以很好地工作。
一旦你将数据放在一个地方,你就不再需要考虑在控制器之间传递它,而是开始将它拉到你需要的地方。您可以开始构建一些可用于存储的服务。我说的是会话,但您可以轻松地使用其他东西,例如实际的数据库,这对于购物车之类的东西来说是个不错的主意。
这里的想法是停止从MVC的角度思考,开始从应用层面思考。
这里我使用 TempData["Amount"]
将购物车总金额从一个控制器操作传递到另一个操作方法。所以我怀疑使用 TempData["Amount"]
将 sensitive 信息从一个操作方法传递到另一个操作方法的良好做法。时间数据的生命周期是多少(比如 sessions
20 分钟)以及如何处理 TempData["Amount"]
.
if (adoptionDetails != null)
{
foreach (var m in adoptionDetails.animalAdaptionDetails.ToList())
{
amount += Convert.ToInt32(m.amount);
animalNames += m.name;
animalNames += ",";
}
ViewBag.Amount = amount;
ViewBag.animalsName = animalNames;
TempData["Amount"] = amount;
return View(adoptionDetails);
}
else
{
return View("~/Views/Users/Errorpage.cshtml");
}
TempData 通过将 Session 绑定到用户的相同逻辑绑定到用户。
TempData 仅适用于同一会话发送的下一个请求,之后会自动删除。
TempData 保存在服务器中 in-memory,只有当您将其插入到响应中时,它才会传输到客户端。
你可以换一种方式开始思考。
您有一些用户数据,无论它是什么,您需要在多个地方为您的应用程序提供这些数据。一种选择是会话,它是用户绑定的,它是短暂的并且只要您不在其中存储太多东西就可以很好地工作。
一旦你将数据放在一个地方,你就不再需要考虑在控制器之间传递它,而是开始将它拉到你需要的地方。您可以开始构建一些可用于存储的服务。我说的是会话,但您可以轻松地使用其他东西,例如实际的数据库,这对于购物车之类的东西来说是个不错的主意。
这里的想法是停止从MVC的角度思考,开始从应用层面思考。