Tôi đang gặp sự cố khi tạo cơ sở dữ liệu của mình với người dùng và vai trò.Kiểm tra xem người dùng có trong vai trò trong asp.net mvc Identity
Người dùng và Vai trò đều được tạo (Tôi có thể thấy chúng trong cơ sở dữ liệu sau khi lỗi được ném).
Tuy nhiên, khi tôi cố gắng kiểm tra xem người dùng có ở trong vai trò hay không, tôi có ngoại lệ.
Mã của tôi là:
public class tbInitializer<T> : DropCreateDatabaseAlways<tbContext>
{
protected override void Seed(tbContext context)
{
ApplicationDbContext userscontext = new ApplicationDbContext();
var userStore = new UserStore<ApplicationUser>(userscontext);
var userManager = new UserManager<ApplicationUser>(userStore);
var roleStore = new RoleStore<IdentityRole>(userscontext);
var roleManager = new RoleManager<IdentityRole>(roleStore);
if(!userscontext.Users.Any(x=> x.UserName=="marktest"))
{
var user = new ApplicationUser { UserName = "marktest", Email = "[email protected]" };
userManager.Create(user, "Pa$$W0rD!");
}
if (!roleManager.RoleExists("Admin"))
{
roleManager.Create(new IdentityRole("Admin"));
}
if(!userManager.IsInRole("marktest","Admin"))
{
userManager.AddToRole("marktest","Admin");
}
Tuy nhiên, trên dòng:
if(!userManager.IsInRole("marktest","Admin"))
Một ngoại lệ được ném với lỗi: UserId not found.
Những thành viên và vai trò đều trong cơ sở dữ liệu khi tôi kiểm tra sau khi ngoại lệ được ném:
bất cứ ai có thể nhìn thấy những gì tôi đang làm sai?
Nhờ sự giúp đỡ,
Đánh dấu
Bạn đã thử 'SaveChanges()' trước 'if (! UserManager.IsInRole (" marktest "," Admin "))'? – Bruniasty
Hi - vâng, tôi đã thêm 'context.SaveChanges();' - ngay trước dòng đó, nhưng vẫn ném một ngoại lệ với cùng một lỗi. Cảm ơn, Mark – Mark
Người dùng "marktest" có được lưu trong cơ sở dữ liệu không? – Bruniasty