2016-01-24 50 views
2

讓角色在ASP.NET MVC 5,在控制器中,我採取了讓與請求的用戶:天冬氨酸MVC:如何從ApplicationUser

ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(System.Web.HttpContext.Current.User.Identity.GetUserId()); 

隨着ApplicationUser情況下,我怎麼能得到用戶的所有角色?

回答

6

您可以使用UserManager獲取用戶和分配的角色。

var userManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); 

,然後你可以得到你的用戶喜歡你已經做了,而且還可以通過調用方法getRoles

userManager.GetRoles(userId); 
0
 List<string> roles = new UserManager().GetRoles(userIdString)).ToList(); 

低於所需的類是在ASP中自動創建,獲得對具體用戶角色使用VS 2015的.NET 4.5項目。文件名是IdentityModels.cs

默認4的NuGet包已安裝包括Microsoft.AspNet.WebApi v5.2.3

public class UserManager : UserManager<ApplicationUser> 
    { 
     public UserManager() 
      : base(new UserStore<ApplicationUser>(new ApplicationDbContext())) 
     { 
     } 
    } 

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
    { 
     public ApplicationDbContext() 
      : base("DefaultConnection") 
     { 
     } 
    } 


public class ApplicationUser : IdentityUser 
{ 
} 
+1

雖然此代碼段可以解決的問題,[包括一個解釋](// meta.stackexchange.com/問題/ 114762 /解釋 - 完全基於代碼的答案)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性! – kayess