5

Io uso ASP.NET Identity 2.0 nella mia applicazione MVC e voglio assegnare i 2 ruoli predefiniti per l'utente che ha accesso al sistema per la prima volta con l'aggiunta di 2 record alla tavolo AspNetUserRoles con UserId e RoleId. C'è un modo pratico per questo? O devo aggiungere questi ruoli predefiniti usando DBContext e Entity Framework, ecc. (Io uso EF Code First)? Qualsiasi aiuto sarebbe apprezzato.Aggiunta di ruolo da tavolo AspNetUserRoles in ASP.NET Identità

risposta

4

Dopo aver creato il record utente Registrati postale azione

var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; 
var result = await UserManager.CreateAsync(user, model.Password); 

È possibile aggiungere i ruoli

await UserManager.AddToRoleAsync(user.Id, "role1"); 
await UserManager.AddToRoleAsync(user.Id, "role2"); 
+0

Mille grazie per la risposta. I colori possono essere assegnati, ma non posso creare un nuovo utente nella tabella ** AspNetUsers ** utilizzando la prima parte del codice. Potresti dare un'occhiata per favore? –

+0

D'altra parte, ho anche bisogno di aggiungere questi nuovi ruoli alla tabella AspNetUserRoles, ma non sono sicuro che il tuo codice possa anche eseguirlo. –

+0

@binary Le prime due righe di codice provengono dal modello mvc5 predefinito, ecco come viene inserito un nuovo ApplicationUser/IdentityUser nel database. Le altre due righe di codice assegnano all'utente tali ruoli, usando l'identità di asp.net. Nel database all'interno di AspNetUserRoles vedrai due nuove voci {userId e role1Id} e {userId e role2Id} – tmg

1

Si potrebbe fare un controllo nella AccountController, metodo Register (quello con il HttpPost) , qualcosa come: if (!MyDbContext.Users.Any()) {...}

E se non ci sono utenti, assegnare ruoli all'utente appena creato con: UserManager.AddToRoleAsync

Problemi correlati