Asp.Net MVC-隐藏重新路由的控制器

时间:2018-08-30 23:44:32

标签: c# asp.net-mvc routes http-status-code-404 http-status-code-403

我有一个网站-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时,我可以保留现有的Controller名称,但是它将重新路由到新路由。例如,www.mydomain.com/administrator的以下url操作-

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

...将重新路由到www.mydomain.com/hidden

但是,如果我只是去www.mydomain.com/administrator,我仍然可以到达控制器...

如何防止这种情况发生?最终,我需要以下内容-

  1. 保留代码中的基础控制器名称,包括所有 始终引用该控制器的相关动作 各种菜单。
  2. 请确保如果有人尝试查找 控制器,尽管实际上它已被赋予HTTP 404 是401或403。

0 个答案:

没有答案