5

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

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"); 
+0

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ę? –

+0

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ć. –

+0

@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

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

Powiązane problemy