1

我正在尝试使用 HttpCookie.SameSite 选项,如下面的代码片段所示,但是尽管 Visual Studio 将此选项识别为有效,但我仍收到以下构建错误。我什至可以在 System.Web 中显示该属性的定义,但编译器似乎无法识别这一点。

我的框架设置为 4.7.2

HttpCookie cookie = HttpContext.Current.Request.Cookies["MyCookie");
if (cookie != null) {
  cookie.Values("MyValue") = "123";
  cookie.SameSite = SameSiteMode.Strict;
  HttpContext.Current.Response.SetCookie(cookie);
}

“SameSite”不是“System.Web.HttpCookie”的成员

我的框架设置为 4.7.2,但是读取 System.Web.HttpCookie 的片段,这意味着默认设置是“Lax”,但它似乎是“None”,表明正在加载不同的 System.Web编译器。

摘要:获取或设置 cookie 的 SameSite 属性的值。

返回: 表示 cookie 执行模式的枚举值之一。如果应用程序面向 .NET Framework 4.7.2 或更高版本,则默认值为 System.Web.SameSiteMode.Lax;否则,默认值为 System.Web.SameSiteMode.None。

4

1 回答 1

0

尽管项目的框架在 Visual Studio 中设置为 4.7.2,但 Web.Config 引用了较旧的 web.config 版本;因此,对于构建,我猜 web.config 优先,但 VS 使用项目文件中所述的框架来实现智能感知。

于 2020-03-11T14:03:55.743 回答