Почему ответ 302 Redirect, когда я ожидаю 200 OK - PullRequest
0 голосов
/ 26 марта 2019

TLDR

Веб-сайт, для которого я нанят, обеспечивает безопасность дескрипторов в двух местах: проверка подлинности с помощью web.config и проверка файла cookie сеанса в коде в MasterPage.Таким образом, изменение сведений о безопасности, например, доступ к некоторым страницам без входа в систему, требует изменений в both местах.Просто забудь об одном, и странные вещи случаются в сетевых инструментах разработчика ...


Мой веб-сайт работает очень хорошо, но небольшие проблемы не дают мне покоя.Он использует проверку подлинности с помощью форм, но все файлы в корневом каталоге не имеют ограничений;только некоторые каталоги имеют deny users=? в локальном файле web.config.Тем не менее, страницы ASP в корне не могут быть доступны до входа в систему, и ответить 302 Found, Redirect.

Это часть web.config в корне:

<authentication mode="Forms">
  <forms name="MYWEBAPP.ASPXAUTH" loginUrl="~/Welkom.aspx"
    protection="All" timeout="181" slidingExpiration="true" path="/"/>
</authentication>

и нет секции <authorization>.

Предполагается, что пользователь должен быть допущен довойти, чтобы посетить такие страницы, как /Cookies.aspx, но с FireFox F12 Dev Tools, вкладка Network, я вижу ответ 302, а затем перенаправление на /Login.aspx.

Это приводит к двум вопросам:

  1. почему 302, а не просто 200 ОК и показать страницу Cookies?
  2. почему вы идете в /Login.aspx, а не /Welkom.aspx?

Я допускаю, что Welkom.aspx может выглядеть здесь странно, но он работал хорошо в течение многих лет, и он делает Response.Redirect("/Login.aspx"), если в параметрах запроса есть подходящий URL.Но я проверил с помощью точки останова отладчика в Page_Load (), и в приведенных выше вопросах файл Welkom.aspx.cs НЕ посещается, поэтому каким-то образом IIS (Expr) идет прямо в /Login.aspx, что очень странно.

1 Ответ

0 голосов
/ 27 марта 2019

Проблема была не в том, как работает HTTP, а в моем собственном коде где-то в коде MasterPage, который называется Response.Redirect ().Когда ваша кодовая база становится большой, появляются такие человеческие ошибки. Так что нет ничего технического, чтобы узнать из этого вопроса.

...