在Db Initializer的种子方法中创建Asp.net身份用户 [英] Creating Asp.net Identity user in Seed method of Db Initializer
问题描述
种子
方法填充数据库 EvInitializer
class继承自 DropCreateDatabaseIfModelChanges
。 Seed
方法的实现是 protected override void Seed(EvContext context )
{
//使用上下文方法添加其他实体
ApplicationUserManager manager = new ApplicationUserManager(new UserStore< ApplicationUser>(context));
var user = new ApplicationUser {Email =admin@myemail.com,UserName =admin@myemail.com};
var result = await manager.CreateAsync(user,Temp_123); //此行给出错误。显然等待不能用于非异步方法,我不能使种子异步
}
我的问题是如何使用 UserManager
类添加 Seed
方法中的用户。当我更改
var result = awit manager.CreateAsync(user,Temp_123);
to
var result = manager.CreateAsync(user,Temp_123)。 //或.Wait
应用程序无限期挂起
在asp .net-identity-2 usermanager具有非异步方法来创建。
var user = new ApplicationUser {Email =admin @ myemail .com,UserName =admin@myemail.com};
manager.Create(user,Temp_123);
如果您要创建admin角色,则与rolemanager相同。
var roleManager = new RoleManager< IdentityRole>(new RoleStore< IdentityRole>(context));
roleManager.Create(new Role(admin));
使用户管理
manager.AddToRole(user.Id,admin);
编辑:随着trailmax评论, Create()
扩展方法来自 Microsoft.AspNet.Identity
命名空间,所以不要忘记使用Microsoft.AspNet.Identity
I have created my data layer with EF 6 code first and I am populating the db through Seed
method of EvInitializer
class inheriting from DropCreateDatabaseIfModelChanges
. The implementation of Seed
method is
protected override void Seed(EvContext context)
{
//Add other entities using context methods
ApplicationUserManager manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context));
var user = new ApplicationUser { Email = "admin@myemail.com" ,UserName = "admin@myemail.com"};
var result = await manager.CreateAsync(user, "Temp_123");//this line gives error. obviously await cannot be used in non- async method and I cannot make Seed async
}
My question is how I can add a user in Seed
method using UserManager
class. when I change
var result = awit manager.CreateAsync(user, "Temp_123");
to
var result = manager.CreateAsync(user, "Temp_123").Result; //or .Wait
the application hangs indefinitely
In asp.net-identity-2 usermanager has non async methods to create.
var user = new ApplicationUser { Email = "admin@myemail.com", UserName = "admin@myemail.com" };
manager.Create(user, "Temp_123");
Same for rolemanager if you want to create "admin" role.
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
roleManager.Create(new Role("admin"));
make the user admin
manager.AddToRole(user.Id, "admin");
Edit: As trailmax commented, Create()
extension method comes in with Microsoft.AspNet.Identity
namespace so do not forget using Microsoft.AspNet.Identity
这篇关于在Db Initializer的种子方法中创建Asp.net身份用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!