Como alterar a landing page para usuários que fazem parte de alguma função (digamos "Admin"). Para ser mais específico, quando um usuário que está na função "Admin" acessa o site do aplicativo ( http://localhost:1234/ ) ele deve ser roteado para o método de ação "Index" do controlador "AdminController". Quando todos os outros usuários (que não estão na função "Admin") acessam o site, eles devem ser roteados para o método de ação "Index" do controlador "HomeController" (isso é satisfeito pela Default Mapped Route routes.MapRoute(name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional })
).
Usuários com função "Admin" NÃO DEVEM ter acesso a nenhum outro controlador, exceto o "AdminController".
EDIT 1: Ou não é possível fazer isso usando roteamento porque o HttpContext ainda não foi formado e a verificação deve ser feita dentro de algum método de ação do controlador (e o usuário redirecionado depois)?
O site padrão é sempre home/index, então você pode definir a lógica no resultado da ação.
por exemplo
Você pode então criar o controlador respectivamente.
Para controlar quem pode acessar o Controlador basta colocar a autorização com a função como segue
Isso informa que somente usuários com função de administrador têm permissão para este controlador