2014-03-03 113 views
2

以下是我正在努力的。我在Asp.Net MVC 5項目中設置了角色。我有兩個角色:管理員和員工。我希望他們在登錄時看到不同的視圖。我怎樣才能做到這一點 ?根據用戶角色呈現不同的視圖ASP.NET MVC 5

 public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) 
     { 
      if (ModelState.IsValid) 
      { 
       var user = await UserManager.FindAsync(model.UserName, model.Password); 
       if (user != null) 
       { 
        await SignInAsync(user, model.RememberMe); 
        //if user is admin, return View1(); 
        //if user is employee, return View2(); 

       } 
      } 
      return View(); 
     } 
+0

只需檢查用戶類型,然後返回View(「Admin」); –

+0

我嘗試了一些像User.IsInRole(「admin」),但沒有奏效。看起來很簡單的工作流程,但找不到代碼和文檔...>。< –

+0

您是如何將用戶添加到角色的?我有一種感覺,apsnet.identity使用索賠(ClaimsType.Role)而不是角色表? –

回答

3

如果將用戶添加到創建後一個角色或多個角色類似以下內容:

result = UserManager.AddToRole(user.Id, "User"); 

你可以很容易得到用戶的角色具有以下行:

bool isAdmin = UserManager.IsInRole(user.Id, "Admin") 
+0

按我想要的方式工作!謝謝 ! :) –

+1

沒問題,很樂意幫忙。 –

相關問題