![](/img/trans.png)
[英]ASP.NET MVC 5: How to disable custom error page from 3rd party library
[英]How to maintain session after redirection to 3rd party URL in ASP.NET MVC?
在實際重定向到第 3 方 url 之前,我們基本上將用戶的會話 id、userid 等存儲在 Session 中,因此當我們返回返回 url 以發布支付網關的數據時,我們將需要通過檢索用戶的會話來更新狀態,在這一點上,我們的會話被清除/為空。 這發生在 84 以上版本的 Chrome 中。因為我也能夠在重定向后在 Firefox 瀏覽器中維護用戶會話。 無論 chrome 版本如何,我也想做同樣的事情。 重定向后如何維護每個用戶的會話?
筆記:
任何其他選項都可以嘗試。 請幫忙。 我正在使用 ASP.NET MVC。
Chrome 比 Firefox 更嚴格地執行新的SameSite
cookie 規則,但 Firefox 很快將與 Chrome 相同。
您應該使用的確切SameSite
選項取決於重定向的類型:
GET
或POST
的 HTTP 3xx 重定向,並且所有請求都通過 HTTPS,那么您可以使用SameSite=None
。<meta>
元素或 JavaScript 使用window.location = 'newUrl'
那么您可以使用SameSite=None
。GET
的 HTTP 3xx 重定向,並且並非所有請求都通過 HTTPS,那么您可以使用SameSite=Lax
。POST
的 HTTP 3xx 重定向,並且並非所有請求都通過 HTTPS,則沒有快速修復:您需要對所有請求使用 HTTPS。 SameSite
選項已添加到 .NET Framework 4.7.2 中的 ASP.NET WebForms 和 ASP.NET MVC,但您應該使用 .NET Framework 4.8。 如果您無法將項目更新到 .NET Framework 4.7.2 或更高版本,那么您可以使用帶有 IIS 的<rewrite>
規則的技巧來修改響應Set-Cookie
requests 。
您可以在 web.config 文件中為SameSite
配置默認值,但您需要更新幾個不同的位置:
HttpCookie
時指定<system.web><httpCookies sameSite="Strict|Lax|None|Unspecified" />
。<system.web><sessionState cookieSameSite="Strict|Lax|None" />
(這是 OP 的問題)。
<sessionState>
指定Unspecified
- 但您永遠不應該使用Unspecified
這樣就不應該成為問題(僅當您需要支持 iOS 12時才需要Unspecified
因為 Apple Safari 當時無法識別SameSite=None
,但今天沒有人應該使用 iOS 12)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.