我已经在Visual Studio中启动了一个新项目> ASP NET 5> Web应用程序,然后按照初始教程进行操作:
https://docs.asp.net/projects/mvc/en/latest/getting-started/first-mvc-app/index.html
我一直在努力解决的任务之一是使用用户,角色为数据库播种,然后将角色分配给用户。
这个答案或其变体看起来很有成效: https://stackoverflow.com/a/20521530/2591770
但是这段代码:
var store = new UserStore<ApplicationUser>(context);
var manager = new UserManager<ApplicationUser>(store);
var user = new ApplicationUser {UserName = "founder"};
导致立即错误。
CS7036没有任何论据符合所要求的形式参数&#39; optionsAccessor&#39; &#39; UserManager.UserManager(IUserStore,IOptions,IPasswordHasher,IEnumerable&gt;,IEnumerable&gt;,ILookupNormalizer,IdentityErrorDescriber,IServiceProvider,ILogger&gt;,IHttpContextAccessor)&#39;
这是框架中的变化还是我可能在其他地方省略了什么?
我可以取消其余的参数,但不能帮助我感觉我错过了什么。
var userManager = new UserManager<ApplicationUser>(userStore,null,null,null,null,null,null,null,null,null);
答案 0 :(得分:0)
这就是我做到的。
public class SeedData
{
public static void Initialize(IServiceProvider serviceProvider)
{
var context = serviceProvider.GetService<ApplicationDbContext>();
var userManager = serviceProvider.GetService<UserManager<ApplicationUser>>();
然后在Startup.cs的Configure方法中:
SeedData.Initialize(app.ApplicationServices);
EDIT1:
var user0 = new ApplicationUser { UserName = "bob", Email = "bob@asd.com" };
var result = userManager.CreateAsync(user0, "Password1!").Result;