Как получить список пользователей из ASP.NET личность?
Edit: этот вопрос устарел
структура идентификации была движущейся целью в тот момент, когда я спросил об этом. Авторы изменили довольно много вещей, и они отделили несколько вещей, сделав вещи проще.
взгляните на Asp.NET образец идентичности проекта на github.
Я создаю небольшое приложение, которое требует от руководства пользователей. Регистрация не разрешена, вместо этого есть суперпользователь это создаст и изменит информацию для входа.
Я использую новый ASP.NET личность система членства и, конечно же, создание пользователей и добавление ролей легко и интуитивно понятны.
теперь мой вопрос: Как получить список пользователей, используя класс AuthenticationIdentityManager, который используется созданным классом AccountController? Я не мог найти способ получить доступ к списку пользователей с моего контроллера.
(кстати, новое название "Identity" может звучит потрясающе для некоторых людей, но это боль для поиска.)
редактировать: если я попытаюсь сделать это
ApplicationDbContext UsersContext = new ApplicationDbContext();
UsersContext.Users.ToList(); // Exception
Я получаю исключение Invalid column name 'Discriminator'. Определение ApplicationDbContext генерируется автоматически мастером создания приложения:
using Microsoft.AspNet.Identity.EntityFramework;
namespace Cobranzas.Models
{
public class ApplicationUser : User
{
}
public class ApplicationDbContext : IdentityDbContextWithCustomUser<ApplicationUser>
{
}
}
так что я предполагаю, что Discriminator столбец предназначен для различения ApplicationUser С User. Однако он не существует в моей базе данных (которая была создана автоматически приложением.)
5 ответов
- создать по умолчанию
- создать
ASP .NET Identityтаблицы правильно и изменить строку подключения как хорошо. - чтобы получить пользователей, просто выполните следующий тест
А. поехать в
AccountControllerB. создайте любой фиктивный метод и поместите туда
var context = new ApplicationDbContext(); var allUsers = context.Users.ToList();

для RTM вам придется опуститься до вашего DbContext или независимо от того, что ваша конкретная реализация магазина должна перечислять всех пользователей. В следующем выпуске мы, скорее всего, добавим необязательный IQueryable метод Users / Roles в классах диспетчера, которые магазины могут реализовать для предоставления IQueryables как для пользователей, так и для магазинов.
using System.Linq;
using System.Data;
using System.Data.Entity;
var db = new ApplicationDbContext();
var Users = db.Users.Include(u => u.Roles);
если мы можем использовать следующий тип Constructor на Identity AccountController.
public AccountController(ApplicationUserManager userManager,
ISecureDataFormat<AuthenticationTicket> accessTokenFormat)
{
UserManager = userManager;
AccessTokenFormat = accessTokenFormat;
}
public ApplicationUserManager UserManager
{
get
{
return _userManager ?? Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set
{
_userManager = value;
}
}
затем мы можем напрямую использовать UserManager объект, чтобы получить список пользователей, как
var userList= UserManager.Users.ToList();