2016-09-23 146 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"); 
    } 
}