我试图构建一个注册用户列表作为选择的下拉列表中的应用程序,将任务分配给人(最终与电子邮件集成)。我成功地使用了AspNetCore.Identity来创建注册用户。使用AspNetCore.Identity创建身份注册用户列表
这里是我到目前为止已经试过一个例子:
public class MinutaDbContext : IdentityDbContext<User>
{
public List<User> QueryUserNames()
{
var context = new MinutaDbContext();
var allUsers = context.Users.ToList();
return allUsers;
}
}
控制器:
public UserAssignmentController(UserManager<ApplicationUser> userManager, RoleManager<IdentityRole> roleManager)
{
UserManager = userManager;
RoleManager = roleManager;
}
我已经看到了关于与AspNet.Identity解决方案的UserManager不起作用的答复因为它在AspNetCore中有不同的声明,并且我不确定如何满足上述所需的参数。
需要的LINQ还是可以提取从列表:
public UserManager(IUserStore<TUser> store, IOptions<IdentityOptions> optionsAccessor, IPasswordHasher<TUser> passwordHasher, IEnumerable<IUserValidator<TUser>> userValidators, IEnumerable<IPasswordValidator<TUser>> passwordValidators, ILookupNormalizer keyNormalizer, IdentityErrorDescriber errors, IServiceProvider services, ILogger<UserManager<TUser>> logger);
或者我应该寻找其他地方,如IQueryableUserStore接口?
更新 我的DbContext构造函数已经用参数选项扩展了base。
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSingleton(Configuration); // Injections
services.AddSingleton<IGreeter, Greeter>();
services.AddScoped<INoteData, SqlNoteData>();
services.AddDbContext<MinutaDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("Minuta")));
services.AddIdentity<User, IdentityRole>()
.AddEntityFrameworkStores<MinutaDbContext>();
}
我已经将请求的startup.cs ConfigureServices方法添加为上面的编辑。范围也被添加到实施服务收集,但我不确定这将如何影响我获得注册用户列表的能力? – Remy