Asp.net core 饼干不';t从前端发送到后端

Asp.net core 饼干不';t从前端发送到后端,asp.net-core,cookies,Asp.net Core,Cookies,我在http://localhost:3000和https://localhost:44378。虽然我在Chrome中看到cookie,但我在请求中没有看到cookie: set-cookie: my1=cookie.None; expires=Sun, 29 May 2022 15:28:59 GMT; path=/; secure; samesite=none set-cookie: my2=cookie.Lax; expires=Sun, 29 May 2022 15:28:59 GMT;

我在
http://localhost:3000
https://localhost:44378
。虽然我在Chrome中看到cookie,但我在请求中没有看到cookie:

set-cookie: my1=cookie.None; expires=Sun, 29 May 2022 15:28:59 GMT; path=/; secure; samesite=none
set-cookie: my2=cookie.Lax; expires=Sun, 29 May 2022 15:28:59 GMT; path=/; secure; samesite=lax
set-cookie: my3=cookie.Strict; expires=Sun, 29 May 2022 15:28:59 GMT; path=/; secure; samesite=strict

以下是一些请求标题:

sec-fetch-mode: cors
sec-fetch-site: cross-site
我试着自己设置cookies:

HttpContext.Response.Cookies.Append("my1", "cookie.None", new CookieOptions() {
    Expires = DateTime.UtcNow.AddYears(1), SameSite = SameSiteMode.None, Secure = true,
});
HttpContext.Response.Cookies.Append("my2", "cookie.Lax", new CookieOptions() {
    Expires = DateTime.UtcNow.AddYears(1), SameSite = SameSiteMode.Lax, Secure = true,
});
HttpContext.Response.Cookies.Append("my3", "cookie.Strict", new CookieOptions() {
    Expires = DateTime.UtcNow.AddYears(1),  SameSite = SameSiteMode.Strict, Secure = true,
});
我在Chrome中看到它们:

set-cookie: my1=cookie.None; expires=Sun, 29 May 2022 15:28:59 GMT; path=/; secure; samesite=none
set-cookie: my2=cookie.Lax; expires=Sun, 29 May 2022 15:28:59 GMT; path=/; secure; samesite=lax
set-cookie: my3=cookie.Strict; expires=Sun, 29 May 2022 15:28:59 GMT; path=/; secure; samesite=strict
但它们不会出现在上表中,也不会出现在后端

以下是我尝试阅读它们的方式:

app.Use(async (context, next) =>
{
    foreach (var p in context.Request.Cookies)
    {
        log.Info($"{p.Key} - {p.Value}");
    }
    log.Info(context.Request.Path);
    await next.Invoke();
});
编辑:将前端更改为我得到的https

sec-fetch-mode: cors
sec-fetch-site: same-site

但还是不行。但是,当我在同一个进程中运行前端和后端时,不需要cors,它就可以正常工作。

似乎我的请求被认为是cors,所以我做了两件事:

  • 在服务器端,我在我的
    服务中添加了
    .AllowCredentials()
    。AddCors(…)
    调用。这将在响应中添加
    访问控制允许凭据:true
  • 在客户端,我指示
    axios
    使用
    axios.get(…,{withCredentials:true})
    将凭据包括到请求中
  • 使用
    HTTPS=true npm Start
    启动前端,使它们都在HTTPS上

  • 你是怎么把饼干放在后端的?