[研究]Visual Studio 2019 在 Web.Config 設定 sameSite 會出現 "不允許 'sameSite' 屬性"
2025-07-07
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C# + SQL Server 2019 + SQL Server Management Studio (SSMS) 19
********************************************************************************
Visual Studio 2019 在 Web.Config 設定 sameSite 會出現 "不允許 'sameSite' 屬性"
ChatGPT 說:
這是 Visual Studio 2019 的常見情況,原因與 .NET Framework 版本 和 Web.Config Schema 檢查 有關,以下詳細說明與解法:
【為什麼出現「不允許 'sameSite' 屬性」】
- Web.Config 編輯器語法提示 (IntelliSense) 版本滯後:
- Visual Studio 2019 內建的 Web.Config 編輯器使用的 Schema 定義(XSD 檔)來自於特定 .NET Framework 版本。
- 即使實際執行環境已經支援 sameSite,但 Schema 沒有更新,編輯器仍會標紅或顯示不允許。
- 實際執行不影響:
- 如果你的專案目標框架(Target Framework)是 .NET Framework 4.7.2、4.8 以上,且 IIS/ASP.NET 執行環境更新到支援 SameSite,設定會正常運作,僅編輯器報警告。
常見 SameSite 設定方式
<system.web> <httpCookies sameSite="None" requireSSL="true" /> </system.web> |
注意:
- sameSite 可設為 Lax、Strict、None
- requireSSL="true" 搭配 sameSite="None" 是標準需求,否則瀏覽器會忽略此 Cookie。
【解決方法與建議】
✅ 確認實際執行環境是否正常:
- 即使 VS2019 編輯器報錯,只要網站實際執行,Cookie 的 SameSite 屬性有正確生效即可。
✅ 更新 Visual Studio 與 .NET Framework 開發包:
- 確認 Visual Studio 已更新至最新版。
- 安裝最新 .NET Framework Developer Pack,例如 4.8 開發包:下載連結:https://dotnet.microsoft.com/en-us/download/dotnet-framework
✅ 忽略編輯器提示:
- 編輯器 Schema 有時不會即時更新,若部署與執行均正常,可忽略設計時警告。
✅ 手動修改 XSD(不建議):
- 可以修改 VS 內部的 dotNetConfig.xsd,讓編輯器認識 sameSite,但需小心,VS 更新時會被覆蓋。
【其他補充】
若你想完全靠程式碼控制 SameSite,可透過 Global.asax:
protected void Application_PreSendRequestHeaders()
{
HttpCookie cookie = Response.Cookies["YourCookieName"];
if (cookie != null)
{
cookie.SameSite = SameSiteMode.None;
cookie.Secure = true;
}
}
|
總結
- VS2019 出現「不允許 'sameSite' 屬性」是編輯器 Schema 未更新的問題。
- 實際執行環境若是 .NET 4.7.2 或 4.8,且瀏覽器檢查 SameSite 屬性正常,則無需擔心。
- 可透過更新 VS 與 .NET Framework 或忽略設計時提示解決。
註:Web.Config 和 Global.asax 的設定可以共存
相關

沒有留言:
張貼留言