2016-08-22 152 views
0

我有一个程序,我在其中读取电子邮件地址和用户数据的CSV文件,并将其带入C#控制台行应用程序,并将每个写入AspNetUser表(假设它通过验证)。在控制台行应用程序中为AspNetUserRole分配用户#

我可以在一个新的用户通过下面的代码写: -

AspNetUser user = new AspNetUser(); 
user.Id = Guid.NewGuid().ToString(); 
user.UserName = username; 
// More Code 
db.AspNetUsers.Add(user); 
db.SaveChanges(); 

我怎样才能从这里开始,将它们分配到一个角色,在AspNetUsersRole表,以便添加记录?该表不能通过LINQ访问?我似乎无法访问控制台行应用程序中的UserManager或ApplicationUser?

提前致谢!

+0

如果您使用Identity,您应该使用'UserManager'和'RoleManager'类来管理您的用户/角色。 – DavidG

+0

我怎样才能从控制台应用程序访问这些? Intellisense只是让我创建一个同名的新类?这是我需要添加的参考吗? –

回答

1

如果使用的是身份,你应该使用UserManagerRoleManager类来管理你的用户/角色:

var user = new AspNetUser 
{ 
    Id = Guid.NewGuid().ToString(), 
    UserName = username 
}; 

var userManager = new UserManager<AspNetUser>(); 
userManager.Create(user, "password"); 
userManager.AddToRole(user.Id, "RoleName"); 

但如果你真的要坚持你的情况下,那么你可以使用导航属性的用户:

var user = new AspNetUser 
{ 
    Id = Guid.NewGuid().ToString(), 
    UserName = username 
}; 

db.AspNetUsers.Add(user); 
var role = db.AspNetRoles.Single(r => r.Name = "RoleName"); 
user.Roles.Add(role); 
db.SaveChanges(); 
相关问题