gpt4 book ai didi

c# - 为什么在 Asp.Net MVC 中提交表单时 session 过期?

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:20 26 4
gpt4 key购买 nike

当我尝试提交特定表单时, session 会过期。

不要将此问题与 session 超时联系起来。我测试过其他表格都工作正常,但当我尝试提交特定表格时, session 会过期。

这是我用来确保 session 不会过期的 [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);
}
}

这是我的 Controller Action

[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" />
}

我在 Stack Overflow 上发现了很多关于 session 过期的问题,比如 this但无法解决问题。我很好奇,为什么根本不提交特定表单时我的 session 值变为空?

如果需要任何其他信息,请询问。

最佳答案

这似乎与您的 IIS(或 IIS express)应用程序的应用程序池空闲时间有关...参见此 link

关于c# - 为什么在 Asp.Net MVC 中提交表单时 session 过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54040289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com