【问题标题】:Google Chrome Version 84.0.4147.125 Session is getting null after redirecting from Payment Gateway .Net MVC 5从支付网关.Net MVC 5 重定向后,Google Chrome 版本 84.0.4147.125 会话变为空
【发布时间】:2020-12-01 20:08:51
【问题描述】:

从支付网关站点重定向后,Web 应用程序会话变为空。此问题仅在 Google Chrome 浏览器中发生。在 Mozilla 中,IE 运行良好。

我们正在使用 .net MVC。

【问题讨论】:

  • 是的!我在 chrome 中版本 84.0.4147.125 的 webAPI 操作中得到了相同的结果。在这个版本之前它工作正常。它在边缘也能正常工作。

标签: asp.net-mvc session


【解决方案1】:

这个新概念是为了让攻击者保存您的应用程序。所以,这里是允许/限制 sameSite 的 cookie 的选项。

2020 年 Chrome 80 或更高版本出现此问题,并引入了新的 cookie 值和 cookie 政策。可以将三个值传递到更新的 SameSite 属性中:StrictLaxNone。如果您没有在<httpCookies> 中指定SameSite 属性,那么它将默认为SameSite=Lax

现在,Lax 适用于同一站点。如果您使用的是跨站点或 iframe(它也被视为跨站点),那么您需要使用 none。如果你想限制你的cookie,那么你需要使用Strict

例子:

  1. 对于httphttps,您需要执行以下步骤--
<httpCookies domain="xyz.com" requireSSL="true" sameSite="None"  />

你可以为&lt;SessionState&gt;使用一些属性

<sessionState allowCustomSqlDatabase="true" cookieSameSite="None" sqlConnectionString="Data Source=serverName; Initial Catalog=databaseName;
User ID=userid;Password=pass;" timeout="55"/>

对于本地访问,您需要执行以下步骤--

  1. 在 chrome 上启动此 URL chrome://flags/#same-site-by-default-cookies
  2. 您将看到“SameSite by default cookies”默认标记为Default,将状态更改为Disabled
  3. 在浏览器中单击重新启动按钮。
  4. 制作requireSSL="false"(在本地系统上)

Iframe 的一个特殊情况。如果您使用 iframe 在您的应用程序中加载不同的应用程序。然后你的会话将是 null 在 chrome 的私人(隐身)窗口中。

对于这种特殊情况,我有一个解决方案。你需要使用cookieless="true" in ```。仅当您不在应用程序中使用 cookie 时。

供您参考:

https://docs.microsoft.com/en-us/office365/troubleshoot/miscellaneous/chrome-behavior-affects-applications

https://docs.microsoft.com/en-us/aspnet/samesite/system-web-samesite

https://docs.microsoft.com/en-us/microsoftteams/platform/resources/samesite-cookie-update https://docs.microsoft.com/en-us/office365/troubleshoot/miscellaneous/chrome-behavior-affects-applications

【讨论】:

  • 我已通过将 requireSSL="true" 放入 web.config 文件进行检查,但它不起作用。
  • 您需要在实时配置中添加此项。对于本地,你需要做---在 chrome "chrome://flags/#same-site-by-default-cookies" 上启动这个 URL 2) 你会看到 "SameSite by default cookies" 默认它被标记为“默认”,将状态更改为“禁用” 3)重新启动浏览器....我的问题已经解决了。
  • 我已按照上述所有步骤操作,但问题仍然存在。我正在使用 .net 框架 4.5
  • @Vikash Chaturvedi:这个解决方案是否适用于新旧浏览器?或者在实施上述更改后,它会破坏旧浏览器中的功能?
猜你喜欢
  • 2021-09-30
  • 1970-01-01
  • 1970-01-01
  • 2022-08-20
  • 2021-01-01
  • 2017-02-06
  • 2020-11-11
  • 2020-07-14
  • 2021-01-09
相关资源
最近更新 更多