Identity2的种子数据库我在使用Identityv2为数据库播种时遇到了问题。我将IdentityModel从MVC5项目分离到我的数据访问层,我还设置了EF迁移。所以我注释掉了“IdentityConfig.cs”中用于创建初始用户的代码,并将代码放入我的种子数据库中,看起来像这样protectedoverridevoidSeed(Repository.DataContext.IdentityDbcontext){//varuserManager=HttpContext.Current.GetOwinContext().GetUserManager();//varroleManager=HttpContext.Current.GetOwinContext().Get();varowinContext=newOwinContext();varuserManager=owinContext.GetUserManager();varroleManager=owinContext.Get();conststringname="admin@admin.com";conststringpassword="Admin@123456";conststringroleName="Admin";////如果不存在则创建角色Adminvarrole=roleManager.FindByName(roleName);if(role==null){role=newIdentityRole(roleName);varroleresult=roleManager.Create(角色);}varuser=userManager.FindByName(名称);if(user==null){user=newApplicationUser{UserName=name,Email=name};varresult=userManager.Create(用户,密码);结果=userManager.SetLockoutEnabled(user.Id,false);}////添加用户admin到RoleAdmin如果还没有添加varrolesForUser=userManager.GetRoles(user.Id);if(!rolesForUser.Contains(role.Name)){varresult=userManager.AddToRole(user.Id,role.Name);现在,当我运行命令更新数据库时,出现错误值不能为空。参数名称:manager看起来我在这两行代码中得到了nullvaruserManager=owinContext.GetUserManager();varroleManager=owinContext.Get();有什么建议么?以下是避免使用OWIN上下文的方法:protectedoverridevoidSeed(Repository.DataContext.IdentityDbcontext)varroleStore=newRoleStore(context);varroleManager=newRoleManager(roleStore);varuserStore=newUserStore(context);varuserManager=newUserManager(userStore);varuser=newApplicationUser{UserName="sallen"};userManager.Create(用户,"密码");roleManager.Create(newIdentityRole{Name="admin"});userManager.AddToRole(user.Id,"admin");我通过使用:protectedoverridevoidSeed(ApplicationDbContextcontext){context.Configuration.LazyLoadingEnabled=true;//变我们erManager=HttpContext.Current//.GetOwinContext().GetUserManager();//varroleManager=HttpContext.Current//.GetOwinContext().Get();varroleStore=newRoleStore(context);varroleManager=newRoleManager(roleStore);varuserStore=newUserStore(context);varuserManager=newUserManager(userStore);...嗨,在你的启动类下,确保你调用了app.CreatePerOwinContext(ApplicationDbContext.Create);app.CreatePerOwinContextApplicationUserManager.Create);app.CreatePerOwinContextApplicationSignInManager.Create);app.CreatePerOwinContext(ApplicationRoleManager.Create);最新的东西都是异步和使用声明如果没有超级用户,那migration对我有用。。。以上就是C#学习教程:身份之种子库2的全部内容,如果对大家有用,需要进一步了解C#学习教程,我希望大家多多关注—protectedoverridevoidSeed(Holos.Service.Models.ApplicationDbContextcontext){varemail="xxxx@xxxx.com";变种密码=“xxxxx”;varuserStore=newUserStore(context);varuserManager=newApplicationUserManager(userStore);varuser=userManager.FindByEmailAsync(email).Result;if(user==null){varadminUser=newApplicationUser(){Email=email,UserName=email};varresult=userManager.CreateAsync(adminUser,password);结果.等待();userManager.AddClaimAsync(adminUser.Id,newClaim("Read","*")).Wait();userManager.AddClaimAsync(adminUser.Id,newClaim("Create","*")).Wait();userManager.AddClaimAsync(adminUser.Id,newClaim("Update","*")).Wait();userManager.AddClaimAsync(adminUser.Id,newClaim("Delete","*")).Wait();userManager.AddClaimAsync(adminUser.Id,newClaim("UserType","SuperUser")).Wait();}}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处:
