Verwendung von Rollen in der Benutzeridentität in MVC 5

8

Ich möchte asp.net useridentity in mvc 5 verwenden, mache ich diese Schritte:

1) Erstellen Sie ein MVC-Projekt.

2) Erstellen Sie meine eigene Datenbank und ändern Sie die Verbindungszeichenfolge im web.config-Formular:              zu:              

3) Ich führe das Projekt aus und erstelle einen neuen Benutzer, um die zugehörige Tabelle zu meiner Datenbank hinzuzufügen.

4) Ich wollte einem Benutzer eine Rolle hinzufügen, nachdem ich einen Benutzer wie diesen Code in accountControler:

registriert habe %Vor%

5) Ich füge

hinzu %Vor%

in:

%Vor%

Wenn ich einen neuen Benutzer erstelle, registrieren sich meine Benutzer gut, aber der Benutzer wird der Rolle nicht hinzugefügt, und wenn ich dies tue VS Erstellen Sie eine neue Datenbank in App_Data mit dem Namen "ASPNETDB.MDF". Daher habe ich einen neuen Artikel gefunden, in dem die Rollenanbietereinstellungen in web.config und

erläutert werden

6) Ich füge

hinzu %Vor%

in:

%Vor%

aber wenn ich neuen Benutzer registrieren möchte, habe ich diesen Fehler gefunden:

  

Die gespeicherte Prozedur 'dbo.aspnet_CheckSchemaVersion' konnte nicht gefunden werden.

Nun denke ich, mein Problem ist, wenn ich Schritt 3 mache, wird es die Benutzeridentitätsdatenbank und die gespeicherte Prozedur nicht vollständig erstellen! Verwende ich die Rolle "Wahr" für MVC 5? Bitte helfen Sie mir, dieses Problem zu lösen!

    
Mostafa 16.10.2014, 08:59
quelle

1 Antwort

9

Wenn Sie

schreiben %Vor%

Sie verwenden keine ASP.NET-Identität! Stattdessen sollten Sie ApplicationRole verwenden, damit die Klasse IdentityRole

erweitert wird

Außerdem müssen Sie das AspNetSqlRoleProvider in Ihrer Konfigurationsdatei nicht angeben. Asp.Net Identität ist etwas anderes. In Asp.Net Identity gibt es eine Klasse namens ApplicationRoleManager im Ordner App_Start.

Sie sollten Asp.Net Identity nicht so verwenden, als wäre es die alte einfache Mitgliedschaft.

Alternativ können Sie auch die Beta-Version von Identity überprüfen, um mehr über Identity zu erfahren.

So starten Sie:

  • Erstellen Sie ein neues Projekt: Wählen Sie Leere Vorlage (nicht MVC nicht WebForm)
  • Installieren Sie das Asp.Net-Identitätsbeispiel über nuget

    %Vor%
  • Bearbeiten Sie den Namespace, damit er mit Ihrem alten Projektnamespace übereinstimmt
  • Wenn Sie einige Ordner aus Ihrem alten Projekt in das neue Projekt kopieren möchten, kopieren Sie Ihre (Controller, Views, ...) nicht die Konfigurationsdateien.

Hier können Sie Rollen wie folgt erstellen:

%Vor%

und zum Erstellen und Hinzufügen eines Benutzers zu bestimmten Rollen verwenden Sie dies

%Vor%

All dies geschieht für Sie von Pranav Rastogi , einem der Identity-Mitarbeiter von Microsoft.

Beachten Sie, dass Sie mit diesen Beispielen eine neue (Beta) Version von System.Web.Mvc anvisieren, die neuer als System.Web.Mvc 5.0.0.0 ist. Wenn ich mich gut erinnere, ist die Beta-Version System.Web.MVC 5.0.1.2 oder so ähnlich

Um mehr über Identität zu erfahren klicken Sie hier

UPDATES Die Version in den Beispielen lautet: System.Web.Mvc 5.2.1.0

    
Bellash 16.10.2014, 11:15
quelle