So löschen Sie Benutzer, die mit UserManager.CreateAsync erstellt wurden

7

Mit asp.net mvc5 scheint meine Benutzerverwaltung zu funktionieren. Ich kann mich mit Google oder mit Name / Passwort anmelden.

Aber jetzt arbeite ich an einer Benutzerverwaltungsschnittstelle, in der ich bestehende Benutzer löschen kann. Und das fängt an, mir zu zeigen, wie verwirrend das Benutzerverwaltungssystem ist. Es gibt so viele verschiedene Möglichkeiten, mit Benutzern umzugehen .. und einige von ihnen funktionieren nicht.

Die meisten Orte, an denen ich lese, sprechen von der Verwendung von Membership.DeleteUser ().

Aber das funktioniert nicht ...

Die Benutzer wurden mit erstellt.

%Vor%

Jetzt später .. Wie lösche ich einen solchen Benutzer? (gegeben sein Name oder Benutzer-ID)

Ich habe versucht, was bei verschiedenen Suchanfragen am meisten auftaucht .. kommt mit der Mitgliedschaft als Lösung. Aber das ist sicherlich nicht richtig für MVC5? Zum Beispiel

%Vor%

Ich kann alle Benutzer mit dieser Methode erreichen.

%Vor%

Und ich kann einen einzelnen Benutzer mit .. finden.

%Vor%

Wie lösche ich nun einen? ....

    
Takhion Stream 02.02.2014, 03:42
quelle

2 Antworten

15

Aktualisieren

Ab Microsoft.AspNet.Identity Version 2.0.0.0 können Sie jetzt Benutzer mit Identität mit UserManager.Delete(user); löschen.

Für die Nachwelt

Sie beziehen sich auf zwei verschiedene Dinge, Identität und Mitgliedschaft. Neuere Versionen von ASP.NET unterstützen die Identität und Mitgliedschaft, wobei die Identität die Standardeinstellung ist, während ältere Versionen nur die Mitgliedschaft (von diesen beiden Authentifizierungssystemen) unterstützen.

Wenn Sie einen Benutzer mit UserManager.CreateAsync erstellen, tun Sie dies innerhalb des Namensraums Microsoft.AspNet.Identity . Wenn Sie versuchen, einen Benutzer mit Membership.DeleteUser zu löschen, tun Sie dies innerhalb des Namensraums System.Web.Security . Sie leben in zwei verschiedenen Welten.

Wie ein anderer Kommentar erwähnt, wird das Löschen von Benutzern noch nicht unterstützt die Box von Identity , aber ist der erste Punkt auf ihrer Roadmap für eine Veröffentlichung im Frühjahr 2014 .

Aber warum warten? Fügen Sie dem ApplicationUser-Modell eine weitere Eigenschaft wie folgt hinzu:

%Vor%

Dann in Ihrem Controller zum Löschen eines Benutzers:

%Vor%

Führen Sie eine Überprüfung durch, wenn sich der Benutzer anmeldet:

%Vor%

Wenn ein gelöschter Benutzer versucht, sich erneut zu registrieren, verwenden Sie UserManager.Create anstelle von UserManager.Update mit den neuen Informationen auf der Registrierungsseite.

Diese Schritte werden effektiv den Benutzer löschen. Wenn Sie wirklich ihre Informationen aus Ihrer Datenbank löschen müssen, Sie können Entity Framework dazu verwenden, dies direkter zu tun .

    
jporcenaluk 02.04.2014, 10:41
quelle
3

wurde zur vorherigen Antwort hinzugefügt. Wenn Sie

haben %Vor%

Dann in Ihrem Controller zum Löschen eines Benutzers:

%Vor%

, weil Ihr Datentyp eine Zeichenfolge und kein Boolean

ist     
Sanvir 18.07.2015 10:10
quelle

Tags und Links