Asp.Net MVC - скрытие перенаправленного контроллера - PullRequest
0 голосов
/ 31 августа 2018

У меня есть веб-сайт - www.mydomain.com

У меня есть аутентифицированный контроллер - AdministratorController

Я хочу убедиться, что если кто-то перейдет на сайт www.mydomain.com/administrator, он не получит ошибку «Несанкционированный» и просто получит HTTP 404.

В настоящее время я добавил следующий маршрут, чтобы изменить в AdministratorController другой URL-адрес -

routes.MapRoute(
                "AdministratorReRoute",
                "hidden/{action}",
                new { controller = "Administrator", action = "Index" });

Это здорово, так как при использовании MVC Url.Action я могу сохранить существующее имя контроллера, но оно будет перенаправлено на новый маршрут. Например, следующее действие URL для www.mydomain.com/administrator -

<a href="@Url.Action("Index", "Administrator", null)">ADMIN</a>

... Перенаправит на www.mydomain.com/hidden

Однако, если я просто зайду на www.mydomain.com/administrator, я все равно доберусь до контроллера ...

Как мне предотвратить это? В конечном итоге я хочу следующее -

  1. Сохраняет имя основного контроллера в коде, включая все ссылки на соответствующие действия этого контроллера во всем различные меню.
  2. Убедитесь, что если кто-то попытается найти контроллер, что им дают HTTP 404, несмотря на это на самом деле быть 401 или 403.
...