Мне нужно написать небольшой веб-сайт ASP.NET MVC, единственной целью которого является захват заголовков, отправленных с устаревшего веб-сайта, добавление этих заголовков в запрос и перенаправление на серверное приложение Blazor (включая заголовки).
Как добавить заголовки в запрос и перенаправить на внешний URL-адрес в действии контроллера?
Я пробовал HttpClient
, WebClient
и HttpWebRequest
, но ни один из них не поддерживает перенаправление.
Я также попробовал:
Response.Headers.Add("Test", "Test redirect");
Response.Redirect("https://mywebsite.com/", true);
Перенаправление работает, но заголовок не добавляется.
«захват заголовков и перенаправление» звучит как обратный прокси — возможно, стоит взглянуть на YARP microsoft.github.io/reverse-proxy
Можете ли вы дважды проверить свои теги? Blazor требует как минимум ASP.NET Core 3.1.
Вы не можете этого сделать, потому что перенаправление 302 обрабатывается браузером и не будет повторно прикреплять заголовки, обратитесь к этому ответу .
Таким образом, вы можете попытаться создать новый ответ, который вам понадобится, чтобы вручную управлять всеми деталями ответа, включая коды состояния, URL-адреса перенаправления и все настраиваемые заголовки.
пример:
Response.StatusCode = 302;
Response.Headers.Add("Location", "https://mywebsite.com/");
Response.Headers.Add("Test", "Test redirect");
Response.Headers.Add("AnotherHeader", "AnotherValue");
...
Ммм, возможно, вы можете создать новый ответ с кодом состояния 30X, я могу проверить, сработает ли он, нет ли у меня под рукой компьютера разработчика