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à
5
A
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");
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
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? –
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. –
@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