2014-03-03 119 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

没问题,很乐意帮忙。 –

相关问题