2016-01-24 3 views
2

В ASP.NET MVC 5, в контроллере, у меня есть взять на себя пользователь, имеющий сделать запрос с:Asp 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 .NET 4.5 с использованием VS 2015. имя файла 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/explaining-whole-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. Также попробуйте не толковать код с пояснительными комментариями, что уменьшает читаемость кода и объяснений! – kayess

Смежные вопросы