Опираясь на Энтони Чу и Алекс.
Создание двух вспомогательных классов ...
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(), чтобы populat выпадающего списка.
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.
Спасибо, человек, это отлично работает. Не могу дождаться 2.0, так что это немного легче. –
Есть ли способ фильтровать пользователей и получать те, кто вошел в систему? Я не могу найти такое поле в классе IdentityUser –
Эта функциональность не существует из коробки. Скорее всего, потому, что это непросто сделать, и определение «вход в систему» отличается в зависимости от приложения. Например, пользователь вошел в систему, пока не выйдет из системы? Что делать, если они используют несколько браузеров или устройств, и они вышли из одного из них? Возможно, «вошел в систему» в каком-то сценарии означает, что пользователь был активным в течение последних шести минут. Как бы вы хотели работать в своем приложении? Возможно, это хорошая отправная точка для обсуждения. –