Es gibt nur sehr wenige Dokumentationen zur Verwendung des neuen Asp.net Identity Security Framework.
Ich habe alles zusammengestellt, um zu versuchen, eine neue Rolle zu erstellen und einen Benutzer hinzuzufügen. Ich habe Folgendes versucht: Rolle in ASP.NET-Identität hinzufügen
Das sieht so aus, als hätte es die Informationen aus diesem Blog erhalten: Erstellen einer einfachen Aufgabenanwendung mit asp.net-Identität und Verknüpfen von Benutzern mit Aufgaben
Ich habe den Code einem Datenbankinitialisierer hinzugefügt, der ausgeführt wird, wenn sich das Modell ändert. Es schlägt bei der RoleExists
Funktion mit folgendem Fehler fehl :
System.InvalidOperationException
aufgetreten in mscorlib.dll Der Entitätstyp IdentityRole ist nicht Teil des Modells für den aktuellen Kontext.
protected override void Seed (MyContext context)
{
var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
var RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
// Create Admin Role
string roleName = "Admins";
IdentityResult roleResult;
// Check to see if Role Exists, if not create it
if (!RoleManager.RoleExists(roleName))
{
roleResult = RoleManager.Create(new IdentityRole(roleName));
}
}
Jede Hilfe wird geschätzt.
quelle
Auf geht's:
quelle
IdentityDbContext
und eine andere, die ich in einem benutzerdefinierten Kontext verwendete. Als ich Ihren Vorschlag verwendeteAppilcationDbContext()
, funktionierte dies.In diesem vollständigen Artikel wird beschrieben, wie Sie mithilfe von ASP.NET Identity Rollen erstellen, Rollen ändern, Rollen löschen und Rollen verwalten. Dies beinhaltet auch Benutzeroberfläche, Controller-Methoden usw.
http://www.dotnetfunda.com/articles/show/2898/working-with-roles-in-aspnet-identity-for-mvc
Hoffe das hilft
Vielen Dank
quelle
In habe
ASP.NET 5 rc1-final
ich folgendes gemacht:Erstellt
ApplicationRoleManager
(auf ähnliche Weise wieApplicationUser
durch Vorlage erstellt)Um
ConfigureServices
inStartup.cs
, habe ich es als RolemanagerRufen Sie zum Erstellen neuer Rollen wie
Configure
folgt auf:Jetzt können die Regeln dem Benutzer zugewiesen werden
Oder in
Authorize
Attribut verwendetquelle
services.AddIdentity<UserAuth, IdentityRole>().AddRoleManager<ApplicationRoleManager>()
Ich konnte es nichtservices
direkt hinzufügen .Als Verbesserung des obigen Peters-Codes können Sie Folgendes verwenden:
quelle
Meine Anwendung hing beim Start, als ich die Codebeispiele von Peter Stulinski & Dave Gordon mit EF 6.0 verwendete. Ich habe mich verändert:
zu
Dies ist sinnvoll, wenn Sie in der Seed-Methode keine weitere Instanz von instanziieren möchten
ApplicationDBContext
. Dies könnte durch die Tatsache verstärkt worden sein, dass ichDatabase.SetInitializer<ApplicationDbContext>(new ApplicationDbInitializer());
im Konstruktor von hatteApplicationDbContext
quelle
Rollen Modell anzeigen
Controller-Methode
quelle
Ich wollte eine andere Lösung zum Hinzufügen von Rollen teilen:
Regler:
quelle
Wenn Sie die Standardvorlage verwenden, die erstellt wird, wenn Sie eine neue ASP.net-Webanwendung auswählen und einzelne Benutzerkonten als Authentifizierung auswählen und versuchen, Benutzer mit Rollen zu erstellen, finden Sie hier die Lösung. Fügen Sie in der Register-Methode des Account Controllers, die mit [HttpPost] aufgerufen wird, die folgenden Zeilen hinzu
if condition
.Dadurch wird zunächst eine Rolle in Ihrer Datenbank erstellt und anschließend der neu erstellte Benutzer zu dieser Rolle hinzugefügt.
quelle
quelle
Die Methode, die ich zum Erstellen von Rollen verwende, ist unten aufgeführt. Außerdem wird sie den Benutzern im Code zugewiesen. Der folgende Code befindet sich in "configuration.cs" im Migrationsordner.
quelle