używam ASP.NET Identity 2.0
w mojej aplikacji MVC
i chcę przypisać 2 domyślne role dla użytkownika, który zalogować się do systemu po raz pierwszy przez dodanie 2 rekordy do tabeli AspNetUserRoles z UserId
i RoleId
. Czy istnieje praktyczny sposób na to? Czy muszę dodać te domyślne role przy użyciu DBContext
i Entity Framework
itp. (Używam EF Code First
)? Każda pomoc będzie doceniona.Dodawanie rolę stołu AspNetUserRoles w ASP.NET Identity
5
A
Odpowiedz
4
Po utworzeniu rekordu użytkownika Rejestracja akcji postu
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
var result = await UserManager.CreateAsync(user, model.Password);
Możesz dodać role
await UserManager.AddToRoleAsync(user.Id, "role1");
await UserManager.AddToRoleAsync(user.Id, "role2");
1
można zrobić test w AccountController, zarejestruj metodę (ten z HttpPost) , coś takiego: if (!MyDbContext.Users.Any()) {...}
Jeśli nie ma użytkowników, należy przypisać role do nowo utworzonego użytkownika za pomocą: UserManager.AddToRoleAsync
Dziękuję za odpowiedź. Oles można przypisać, ale nie mogę utworzyć nowego użytkownika w tabeli ** AspNetUsers ** przy użyciu pierwszej części kodu. Mógłbyś rzucić okiem na proszę? –
Z drugiej strony, muszę również dodać te nowe role do tabeli AspNetUserRoles, ale nie jestem pewien, czy twój kod również może to zrobić. –
@binary Pierwsze dwa wiersze kodu pochodzą z domyślnego szablonu mvc5, stąd sposób wstawiania nowego użytkownika ApplicationUser/IdentityUser do bazy danych. Pozostałe dwa wiersze kodu przydzielają użytkownika do tych ról, wykorzystując tożsamość asp.net. W bazie danych wewnątrz AspNetUserRoles pojawią się dwa nowe wpisy {userId i role1Id} oraz {userId i role2Id} – tmg