5

Ich benutze ASP.NET Identity 2.0 in meiner MVC Anwendung und ich mag zuweisen 2 Standardrollen für den Benutzer, die sich am System anmelden zum ersten Mal durch Zugabe von 2 Datensätze an die AspNetUserRoles Tabelle Hinzufügen Rolle mit UserId und RoleId. Gibt es einen praktischen Weg dazu? Oder muss ich diese Standardrollen unter Verwendung DBContext und Entity Framework, etc. hinzufügen (ich verwende EF Code First)? Jede Hilfe wäre willkommen.zu AspNetUserRoles Tabelle in ASP.NET Identität

Antwort

4

Nach dem Erstellen des Benutzerdatensatzes in Registern Beitrag Aktion

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

Sie können die Rollen hinzufügen

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

Vielen Dank für Ihre Antwort. Die oles können zugewiesen werden, aber ich kann keinen neuen Benutzer in ** AspNetUsers ** -Tabelle erstellen, indem Sie den ersten Teil Ihres Codes verwenden. Könnten Sie bitte einen Blick darauf werfen? –

+0

Auf der anderen Seite muss ich diese neuen Rollen auch der AspNetUserRoles-Tabelle hinzufügen, aber ich bin nicht sicher, ob Ihr Code dies auch ausführen kann. –

+0

@binary Die ersten zwei Codezeilen stammen aus der Standardvorlage mvc5, sodass ein neuer ApplicationUser/IdentityUser in die Datenbank eingefügt wird. Die anderen beiden Codezeilen weisen diesen Rollen Benutzer unter Verwendung von asp.net-identity zu. In der Datenbank innerhalb von AspNetUserRoles sehen Sie zwei neue Einträge {userId und role1Id} und {userId und role2Id} – tmg

1

Sie einen Scheck in der Account tun könnten, Register-Methode (die mit der Httppost) , etwas wie: if (!MyDbContext.Users.Any()) {...}

Und wenn es keine Benutzer gibt, weisen Sie dem neu erstellten Benutzer Rollen mit: UserManager.AddToRoleAsync

Verwandte Themen