, orada Tohum yöntemdir ve bu şekilde görünür:ASP.net MVC + ASP.net Kimlik tohumlama roller ve kullanıcılar
protected override void Seed(DatabaseContext context)
{
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
var userManager = new UserManager<User>(new UserStore<User>(context));
if (!roleManager.RoleExists("Administrator"))
{
roleManager.Create(new IdentityRole("Administrator"));
}
var user = new User {UserName = "someUserName"};
if (userManager.FindByName("someUserName") == null)
{
var result = userManager.Create(user, "password");
if (result.Succeeded)
{
userManager.AddToRole(user.Id, "Administrator");
}
}
}
Sonra PM konsolunda ben güncelleme veritabanı koşuyoruz ve başarıyla veritabanı ekili ve AspNetUserRoles tablosunda, kullanıcı bazıUserName ve Administrator rolünün bağlı olduğunu görebiliyorum.
Ama benim kullanıcı bu rolde değildi sanki sayfaya giriş yönlendiriliyorsanız denetleyici üzerinde [Authorize(Roles = "Administrator")]
bağlıyor koymak, bu yüzden benim denetleyicisi hattı ekledik zaman:
var x = _userManager.IsInRole(_userManager.FindByName("someUserName").Id, "Administrator");
Ve x yanlıştır. Bu neden oluyor ? Ve bunu nasıl düzeltebilirim? Ve bu tohum veri tabanına uygun değilse, hangisi?