Подтвердить что ты не робот

Получение всех пользователей и всех ролей через идентификатор asp.net

У меня есть новый проект, который я создал в VS 2013. Я использую систему идентификации, и я запутался, как получить список всех пользователей приложения и всех ролей в его приложении. Я пытаюсь создать некоторые страницы администратора, чтобы я мог добавлять новые роли, добавлять роли пользователям, видеть, кто все зарегистрирован или заблокирован.

Кто-нибудь знает, как это сделать?

4b9b3361

Ответ 1

В ASP.NET Identity 1.0 вам нужно получить это от самого DbContext...

var context = new ApplicationDbContext();
var allUsers = context.Users.ToList();
var allRoles = context.Roles.ToList();

В ASP.NET Identity 2.0 (в настоящее время в Alpha) эта функция отображается на страницах UserManager и RoleManager...

userManager.Users.ToList();
roleManager.Roles.ToList();

В обеих версиях вы будете взаимодействовать с RoleManager и UserManager, чтобы создавать роли и назначать роли пользователям.

Ответ 2

Основываясь на том, что сказал Энтони Чу, в Identity 2.x, вы можете получить роли с помощью специального вспомогательного метода:

public static IEnumerable<IdentityRole> GetAllRoles()
{
    var context = new ApplicationDbContext();
    var roleStore = new RoleStore<IdentityRole>(context);
    var roleMgr = new RoleManager<IdentityRole>(roleStore);
    return roleMgr.Roles.ToList();
}

Ответ 3

Основываясь на Энтони Чу и Алексе.
Создание двух вспомогательных классов...

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

     public class RoleManager : RoleManager<IdentityRole>
     {
        public RoleManager()
            : base(new RoleStore<IdentityRole>(new ApplicationDbContext()))
        { }
      }

Два способа получения ролей и пользователей.

   public static IEnumerable<IdentityRole> GetAllRoles()
    {
        RoleManager roleMgr = new RoleManager();
        return roleMgr.Roles.ToList();
    }

    public static IEnumerable<IdentityUser> GetAllUsers()
    {
        UserManager userMgr = new UserManager();
        return userMgr.Users.ToList();
    }

Два примера методов, использующих GetRoles() и GetUsers(), чтобы просмотреть раскрывающийся список.

public static void FillRoleDropDownList(DropDownList ddlParm)
{
    IEnumerable<IdentityRole> IERole = GetAllRoles();

    foreach (IdentityRole irRole in IERole)
    {
        ListItem liItem = new ListItem(irRole.Name, irRole.Id);
        ddlParm.Items.Add(liItem);
    }
}

public static void FillUserDropDownList(DropDownList ddlParm)
{ 
    IEnumerable<IdentityUser> IEUser = GetAllUsers();

    foreach (IdentityUser irUser in IEUser)
    {
        ListItem liItem = new ListItem(irUser.UserName, irUser.Id);
        ddlParm.Items.Add(liItem);
    }
}
Пример использования

:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            FillRoleDropDownList(ddlRoles);
            FillUserDropDownList(ddlUser);
        }
    }

спасибо Энтони и Алексу за то, что помогли мне понять эти классы Identity.

Ответ 4

System.Web.Security Класс ролей также позволяет получить список ролей.

List<String> roles = System.Web.Security.Roles.GetAllRoles();