Как я могу перенаправить на страницу с кодом состояния 302 в контроллере?

#asp.net-core #.net-core

#asp.net-ядро #.net-ядро

Вопрос:

Я собираюсь перенаправить на страницу с кодом состояния 302.

 public IActionResult test()
        {
            ///some logic
            return RedirectPermanent("www.google.com");
        }
 

Однако после того, как я использовал RedirectPermanent метод, получаю только код состояния 301.

Как я могу это решить? Спасибо.

Ответ №1:

Вы использовали метод RedirectPermanent , при котором соответствующий код состояния 301 перемещается постоянно

Если вам нужно 302 (найдено), попробуйте использовать Redirect -Метод

Вы можете посмотреть это здесь

Обновление: окончательное решение в комментариях

Другой идеей может быть создание ‘ActionFilter’ для этого конкретного случая использования. Вы можете использовать метод перенаправления, а в методе OnActionExecuted ActionFilter вы можете вручную изменить код состояния на 302

Комментарии:

1. Я нашел это. Однако так странно, что нет общедоступного абстрактного перенаправления void (расположение строки, bool permanent); в Visual Studio даже я использовал asp.net ядро 6.

2. В чем причина того, что вам нужно 302 в этом случае? Потому что 301 выражает именно то, чего вы хотите достичь

3. Я хочу противостоять веб-сканеру. При наличии вероятного веб-сканера он перенаправит на страницу с кодом состояния 302, чтобы проверить ее с помощью Google Recaptcha.

4. Другой идеей может быть создание «ActionFilter» для этого конкретного случая использования. Вы можете использовать этот Redirect метод, а в OnActionExecuted Методе ActionFilter вы можете вручную изменить код состояния на 302

5. Спасибо. Позвольте мне попробовать этот способ.