Используя аутентификацию с помощью форм, могу ли я вернуть 404 с недоступной страницы вместо перенаправления на страницу входа?

Используя проверку подлинности с помощью форм, можно ли вернуть 404, если у пользователя нет доступа к содержимому, а не перенаправить их куда-либо?

Я понимаю, что могу отправить их на страницу с ошибкой 404 или перенаправить на несуществующую страницу входа, но я действительно хочу вернуть ошибку 404 со страницы, к которой они пытались получить доступ.

Возможно?


person Deane    schedule 15.05.2010    source источник


Ответы (3)


Лучше было бы отправить их на страницу 403 (Запрещено), но при этом выглядеть как обычная страница вашего сайта.

person Gareth    schedule 15.05.2010

Вы должны подумать о настраиваемых страницах 404 с рекомендуемыми параметрами навигации, когда посетители веб-сайта запрашивают страницы, которые возвращают код ответа 404. Поэтому я поддерживаю отправку пользователей на страницу 404 с параметрами поиска, другими навигационными ссылками вместе с уведомлением о том, что пользователь достиг несуществующей страницы.

person Srikar Doddi    schedule 15.05.2010

Вам будет трудно поймать 403, а тем более перенаправить его.

В модуле проверки подлинности с помощью форм существует давняя «ошибка», которая просто сбрасывает «неавторизованный» на зарегистрированную страницу входа с 200 OK.

Таким образом, вы не только не можете легко поймать 403 — по моему опыту, 403 никогда не был подходящим кандидатом для пользовательской страницы ошибки. Я не уверен, почему MS оставила его в web.config по умолчанию на 10 лет.

В любом случае, я разработал модуль, который исправит это поведение, код и подробности можно найти здесь: http://www.codeproject.com/Articles/39062/Salient-Web-Security-AccessControlModule.aspx

Язык статьи ориентирован на запросы типа ajax, но модуль также разработан с учетом аутентификации на основе форм на основе веб-форм.

Конфигурация по умолчанию даст вам возможность обрабатывать 403 с помощью пользовательской страницы ошибки, которая может быть простым обработчиком, генерирующим ошибку 404, которая, в свою очередь, будет обрабатываться любой пользовательской страницей 404, которую вы определили, если таковая имеется.

person Sky Sanders    schedule 15.05.2010