我需要编写一个小型 ASP.NET MVC 网站,其唯一目的是捕获从旧网站发送的标头,将这些标头添加到请求中并重定向到 Blazor 服务器应用程序(包括标头)。
如何向请求添加标头并在控制器操作中重定向到外部 URL?
我尝试过
HttpClient
、WebClient
和 HttpWebRequest
,但都不支持重定向。
我也尝试过:
Response.Headers.Add("Test", "Test redirect");
Response.Redirect("https://mywebsite.com/", true);
重定向有效,但未添加标头。
你不能这样做,因为 302 重定向是由浏览器处理的,它不会重新附加标头,请参阅此answer。
因此,您可以尝试创建一个新响应,您需要手动管理所有响应详细信息,包括状态代码、重定向 URL 和所有自定义标头。
示例:
Response.StatusCode = 302;
Response.Headers.Add("Location", "https://mywebsite.com/");
Response.Headers.Add("Test", "Test redirect");
Response.Headers.Add("AnotherHeader", "AnotherValue");
Response.Headers.Add("Cache-Control", "no-cache");
Response.Headers.Add("Expires", "-1");