2016-08-22 156 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(); 
相關問題