如何更改属于某个角色(比如说“管理员”)的用户的登录页面。更具体地说,当具有“管理员”角色的用户访问应用程序站点( http://localhost:1234/ )时,应将他路由到控制器“AdminController”的“Index”操作方法。当所有其他用户(不具有“管理员”角色)访问站点时,应将他们路由到控制器“HomeController”的“Index”操作方法(这由默认映射路由满足routes.MapRoute(name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional })
)。
“管理员”角色用户不得访问除“AdminController”之外的任何其他控制器。
编辑 1:或者是否无法使用路由来执行此操作,因为尚未形成 HttpContext,并且必须在某些控制器操作方法内部进行检查(然后用户重定向)?
默认站点始终是 home/index,因此您可以在操作结果下设置逻辑。
例如
然后您可以分别创建控制器。
要控制谁可以访问控制器,只需将授权与角色如下所示
这告诉只有具有管理员角色的用户才允许使用此控制器