我正在寻找一种最佳方式来根据用户在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}....)
感谢。
答案 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。