Когда я пытался отправить конкретную форму, сессия истекает.
Пожалуйста, не связывайте эту проблему с тайм-аутом сеанса. Я проверил с другими формами, все работают нормально, но когда я пытался отправить конкретную форму, сессии истекает.
Вот мой [SessionExpire]
атрибут, который я использую, чтобы гарантировать, что сессия не истекает.
public class SessionExpireAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpContext ctx = HttpContext.Current;
// check sessions here
if (HttpContext.Current.Session["createdby"] == null)
{
filterContext.Result = new RedirectResult("~/Account/Login");
return;
}
base.OnActionExecuting(filterContext);
}
}
Вот мое действие контроллера
[SessionExpire]
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit([Bind(Include = "FirmId,Name,Email,Phone,Status,CellPhone,UnitLimit,Address,PaymentDate,NextPaymentDate,Currency,NoUnit,NoProperty,ExpectedNoUnit,BusinessType,Website,ClientId,CreatedDate,CreatedBy,DeletedBy,DeletedOn,PackageId,IsCustomPackage")] FirmDM objFirm, HttpPostedFileBase fileLogo, HttpPostedFileBase fileSign)
{
//My logic
}
Вот моя форма
@using (Html.BeginForm("Edit", "Firm", FormMethod.Post, new { enctype = "multipart/form-data", @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
//My input fields
<input type="submit" class="btn btn-default" value="Save" />
}
Я нашел много вопросов об истечении сеанса в переполнении стека, например this , но не смог решить проблему. Мне любопытно, почему мое значение сеанса становится нулевым, когда не отправляете конкретную форму?
Пожалуйста, запросите, если потребуется, любую другую информацию.