ASP.NET MVC:如何在控制器的重定向中植入 session cookie?

ASP.NET MVC: How to plant a session cookie in a redirection from the controller?

我正在尝试从 MVC 控制器内部重定向到不同的外部 URL,只添加一个 session cookie,我可以在重定向后访问它。

我已经检查了数十个 Whosebug 的问题以及更多问题,只发现了旧的或不相关的答案,或者使用了不同的技术。

// GET: api/lem/fst?url=xxx
        [HttpGet]
        public ActionResult Get([FromQuery]string url)
        {
            var uri = new UriBuilder(url);
            var cookieOptions = new CookieOptions
            {
                Domain = uri.Host,
            };
            HttpContext.Response.Cookies.Append("key123", "value123", cookieOptions);
            return Redirect(uri.ToString());
        }

例如,如果我发送 GET 到 https://.../api/lem/fst?url=www.google.com, 我可以在服务器的 Set-Cookie 响应 header 中看到 cookie。 此外,重定向工作正常,但我在 google.

的请求或响应中的任何地方都看不到 cookie

谢谢!

看看:

您的代码工作正常:如果它是同一个域,那么来自 Get 响应的 cookie 将存储在 cookie 清单中并发送(在请求中)重定向到 url。

用于测试在本地计算机上托管两个单独的 Web 应用程序。例如从 localhost:50324 重定向到 localhost:47232.