2016-09-23 92 views
3

我是新来的asp.net mvc 5.我有3个用户角色(Admin,Teacher,Student),所有3个角色都有不同的视图。我想在用户登录时重定向,重定向或根据用户的角色路由用户,以及用户是否登录以跳过登录页面。Asp net mvc 5安全

感谢咨询

我会尽量解释更深:

我有表中的SQL,用户(用户名,密码,电子邮件,角色,datejoined,indexNo),我想,当一个人的尝试如果用户存在于该表中以检查角色,则登录。

如果用户具有角色管理员重定向到管理视图,否则如果用户具有教师角色重定向到教师视图,否则重定向到学生。所有3个视图都有不同的外观和感觉以及不同的选项。当我把[授权]注释,每个应用程序的用户可以看到所有其他用户的选项,但无法访问,而我不想。我希望每个角色都有自己的角色选项,并且不会看到来自其他角色的选项。

+0

您可以通过实现创建自己的'自定义角色provider'类'RoleProvider' .. [这里](http://www.codeproject.com/Articles/607392/Custom-Role-Providers)是其例。 – mmushtaq

回答

1

要根据角色重定向到特定视图,可以按照以下代码进行操作。

public ActionResult RedirectLogin(string returnUrl) 
{ 
    if(User.IsInRole("Admin")){ 
       return RedirectToAction("Index", "Admin"); 
      } 
    if(User.IsInRole("Teacher")){ 
       return RedirectToAction("Index", "Teacher"); 
      } 
    if(User.IsInRole("Student")){ 
       return RedirectToAction("Index", "Student"); 
    } 
}