Как получить список пользователей из 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
таблицы правильно и изменить строку подключения как хорошо. - чтобы получить пользователей, просто выполните следующий тест
А. поехать в
AccountController
B. создайте любой фиктивный метод и поместите туда
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();