问题描述
我使用的是 ASP.NET MVC 5 应用程序。从支付网关重定向回来后,我遇到了会话被破坏的问题。
是会议系统。我每年都使用这个 3 个月,直到去年我现在使用它时没有出现这样的问题我特别在 Mozilla 和 google chrome 上遇到了这个问题,但在 Microsoft Edge 中没有遇到这样的会话输出问题
这是我的会话相关代码:
ConferenceSession profileData = new ConferenceSession
{
username = log.emailID,cid = log.confid
};
Session["TstConfSESSION"] = profileData;
过滤器:
public class CustomFilter : Filterattribute,IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Session["TstConfSESSION"] == null)
{
//filterContext.Controller.TempData.Add("RedirectReason","Session destroyed - try again!");
filterContext.Result = new RedirectResult("/");
}
}
}
响应控制器
[CustomFilter]
[HttpPost]
public ActionResult payment(string id,FormCollection frm)
{
// payment gateway response code
}
我在 web.config
中添加了这些设置以增加会话时间:
<system.web>
<!-- Increase session time for payment gateway -->
<sessionState timeout="20"></sessionState>
</system.web>
解决方法
默认会话状态超时为 20 minutes
。您应该尝试增加,因为在您的代码中您实际上设置了默认值。
因此,默认配置和您当前的配置没有区别。他们指向的是同一个。