我正在使用 Session 变量来存储信息。在从外部更改某些文件(如web.config或IIS本身)之前,它可以正常工作。就我而言,这通常发生在詹金斯身上。 发生这种情况时,会话中存储的所有信息都会丢失,结果我被强制注销。
为了解决这个问题,我现在打算使用 Request.Form 来保存所有必需的信息。因此,我想问论坛,Request.Form是否安全,以便像会话变量一样使用它。
答案 0 :(得分:0)
MVC是Model View Controller吗?不使用会话不是一个好主意,也不是request.form。编写MVC应用程序的最佳方法是根据您的需求创建模型,并从控制器中“发布”或“获取”。与会话和request.from相比,它甚至更具可测试性,可维护性和可扩展性。
仅举一个例子;
public class YourController : Controller
{
private readonly IEmailMessengerService _emailMessageService;
private readonly IUnitOfWorkFactory _unitOfWorkFactory;
// dependency injection
public YourController
(IUnitOfWorkFactory unitOfWorkFactory,
IEmailMessengerService emailMessageService)
{
_unitOfWorkFactory = unitOfWorkFactory;
_emailMessageService = emailMessageService;
}
// GET: YourController
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(YourViewModel model)
{
#region backend validation
if (
!GoogleReCAPTCHAHelper.Check(Request["g-recaptcha-response"],
ConfigurationManager.AppSettings["GoogleReCAPTCHASecret"]))
{
ModelState.AddModelError(string.Empty, "You have to confirm that you are not robot!");
return View(model);
}
// do your validation
#endregion
// do your needs here.
}
}
问题是,您真的需要使用Session吗?如果您确实要存储全局数据,则可以考虑将cookies
,localStorage
或sessionStroge
存储在客户端。