ASP.NET MVC 利用路由规则自定义管理后台登录地址

目标:通过修改配置参数实现动态生成管理后台登录地址,以此来增加后台安全性。

原理:将管理后台目录放到web.config文件中作为配置项,路由规则中去掉默认的后台登录地址。增加一条路由规则,控制器名称从web.config文件中读取。

假设原后台登录地址为http://www.xxx.com/admin/login,将控制器名称“admin”放到配置文件中,当该配置项的值为“test”时,后台登录地址就变成http://www.xxx.com/test/login。

1、增加web.config配置项<add key="AdminRoutePath" value="test"/>

2、修改App_Start/RouteConfig.cs文件,增加一条忽略路由,并增加一条新路由映射。

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.IgnoreRoute("Admin/Login");

routes.MapRoute(

name: "AdminLogin",

url: ConfigHelper.GetConfig("AdminRoutePath") + "/{action}", //ConfigHelpr.GetConfig()为读取配置文件内容的方法

defaults: new { controller = "Auth", action = "{action}" }

);

routes.MapRoute(

name: "Default",

url: "{controller}/{action}/{id}",

defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

);

此时如果访问http://www.xxx.com/admin/login会报404错误,访问http://www.xxx.com/test/login可打开登录页。

登录进入后台后,可以在某个操作界面增加修改该配置项数据的功能。