当支付网关发布对 .aspx 页面的响应时,会话变空
Session is getting empty when payment gateway posts response to .aspx page
我正在使用 c# asp.net(.Net framework 4.0) 集成支付网关 'First Cardinal Commerce'。支付网关将响应值发布到我们的商家网站。对于创建的名为 'Success.aspx' 的页面,它从支付网关接收一些响应值,这些响应值由支付网关在处理交易后发布。我使用下面的代码接收响应值
request.form["responsecode"]
我遇到的问题是,当支付网关向此页面发布响应值时,页面 'Success.aspx' 的会话变空。我可以收到响应值,但由于会话为空,它被重定向到登录页面。
我正在使用 .Net 框架 4.0 版
你能告诉我为什么会这样吗?当页面被支付网关重定向时如何保留会话?
当您导航到外部应用程序并返回时,所有 ASP.net 会话 cookie 都将丢失。
Get Ready for New SameSite=None; Secure Cookie Settings
With Chrome 80 in February, Chrome will treat cookies that have no
declared SameSite value as SameSite=Lax cookies. Only cookies with the
SameSite=None; Secure setting will be available for external access,
provided they are being accessed from secure connections. The Chrome
Platform Status trackers for SameSite=None and Secure will continue to
be updated with the latest launch information.
首先,您需要将 .net Framework 从 4.0 升级到至少 4.7.2。或更高。
为什么?
更新后的标准不向后兼容以前的标准[...]Microsoft 不支持低于 4.7.2 的 .NET 版本来编写同站点 cookie 属性。
Work with SameSite cookies in ASP.NET
.NET 版本低于 4.7.2 的解决方法
修改 ASP.NET 会话 Cookie(检查 Cookie 名称是否在您的应用程序中自定义为其他名称)。可能在 Global.asax
Application_BeginRequest
或取决于您的代码。
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.Cookies.Count > 0 && Request.Cookies["ASP.NET_SessionId"] != null)
{
HttpCookie sessionCookie = Request.Cookies["ASP.NET_SessionId"];
sessionCookie.Path = "/; SameSite=None";
sessionCookie.Secure = true;
Response.SetCookie(sessionCookie);
}
}
我正在使用 c# asp.net(.Net framework 4.0) 集成支付网关 'First Cardinal Commerce'。支付网关将响应值发布到我们的商家网站。对于创建的名为 'Success.aspx' 的页面,它从支付网关接收一些响应值,这些响应值由支付网关在处理交易后发布。我使用下面的代码接收响应值
request.form["responsecode"]
我遇到的问题是,当支付网关向此页面发布响应值时,页面 'Success.aspx' 的会话变空。我可以收到响应值,但由于会话为空,它被重定向到登录页面。
我正在使用 .Net 框架 4.0 版
你能告诉我为什么会这样吗?当页面被支付网关重定向时如何保留会话?
当您导航到外部应用程序并返回时,所有 ASP.net 会话 cookie 都将丢失。
Get Ready for New SameSite=None; Secure Cookie Settings
With Chrome 80 in February, Chrome will treat cookies that have no declared SameSite value as SameSite=Lax cookies. Only cookies with the SameSite=None; Secure setting will be available for external access, provided they are being accessed from secure connections. The Chrome Platform Status trackers for SameSite=None and Secure will continue to be updated with the latest launch information.
首先,您需要将 .net Framework 从 4.0 升级到至少 4.7.2。或更高。
为什么? 更新后的标准不向后兼容以前的标准[...]Microsoft 不支持低于 4.7.2 的 .NET 版本来编写同站点 cookie 属性。
Work with SameSite cookies in ASP.NET
.NET 版本低于 4.7.2 的解决方法
修改 ASP.NET 会话 Cookie(检查 Cookie 名称是否在您的应用程序中自定义为其他名称)。可能在 Global.asax
Application_BeginRequest
或取决于您的代码。
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.Cookies.Count > 0 && Request.Cookies["ASP.NET_SessionId"] != null)
{
HttpCookie sessionCookie = Request.Cookies["ASP.NET_SessionId"];
sessionCookie.Path = "/; SameSite=None";
sessionCookie.Secure = true;
Response.SetCookie(sessionCookie);
}
}