[ASP.net] 讓 Cookie 在 iframe 中正常運作的技巧

2024-11-28

最近碰到一個問題,開發一個專案,讓別人 iframe 嵌入我,但是因為我程式這邊不論是 Server 端或是 Client 端

我都有讀寫 cookie 但是發現被人嵌入後竟然失效了...



直接先說結論,我第一時間就是懷疑應該是 SameSite Cookie Policy 有關係,我查了一下,因為我原本的原始碼都是使用

Lax ,但是如果你遇到你開發的網頁,是需要被人家嵌入,就得設定成 None 但是看了一 下網路文獻,除了 設定為 None 之外還要把 Secure 打開

下面直接分享 Code

Javascript code

function setCookie(name, value,seconds) { var expires = new Date(); expires.setTime(expires.getTime() + (seconds*1000)); document.cookie = name + "=" + escape(value) + ";expires=" + expires.toGMTString() + ";" +" SameSite=None;Secure" }


.NET C# code 

public static void SetCookie(this Microsoft.AspNetCore.Http.HttpContext httpContext, string name, string value, double expireSeconds) { httpContext.Response.Cookies.Append( name, value, new CookieOptions() { SameSite = SameSiteMode.None,Secure=true, Expires = DateTimeOffset.Now.AddSeconds(expireSeconds) }); }


看一下 Browser 看一下 應用程式 =>找到該網域=> Cookie



當麻許的碎念筆記 2014 | Donma Hsu Design.