MVC4应用程序中的路由

时间:2013-10-10 11:35:06

标签: asp.net-mvc asp.net-mvc-areas

我正在寻找一种最佳方式来根据用户在MVC4应用程序中的角色来路由用户。

基本上我的应用程序中有3种类型的用户

1)管理 2)工作人员 3)客户端

我怎样才能做到这一点?

admin/home (for each admin request it starts with admin/{controller}....)
staff/home  (for each staff request it starts with staff/{controller}....)
client/home  (for each client request it starts with client/{controller}....)

感谢。

2 个答案:

答案 0 :(得分:0)

3)在控制器中有一个属性可以放在您的操作的前面,因此您可以列出此特定操作允许的角色类型。您也可以创建自己的过滤器。

答案 1 :(得分:0)

好的,这就是我的建议,制作一个新项目并使用'互联网模板'。开箱即用,他们为您设置了一个登录页面,这将让您了解如何在自己的应用程序中进行设置。

根据上面的设置,您需要编辑AccountController并在Login Post Action中添加类似的内容。

 if (User.IsInRole("Admin"))
 {
     return RedirectToAction("Home", "AdminController");
 }
 if (User.IsInRole("Staff"))
 {
     return RedirectToAction("Home", "StaffController");
 }
 if (User.IsInRole("Client"))
 {
     return RedirectToAction("Home", "ClientController");
 }

不要忘记将[Authorize(Roles = "RoleName")]属性添加到四个控制器中,否则无论是否登录都无关紧要。

另外,看看http://www.asp.net/mvc他们有很多资源可以学习asp.net mvc。