Ich habe mir die Dokumentation des Mitgliedschaftsanbieters angeschaut und es sollte zwei GetAllUsers-Methode im Mitgliedschaftsprovider geben ( Ссылка ).
Aber wenn ich mir Methoden anschaue, die von System.Web.Security (in
%Vor%Es gibt nur eine Methode (die eine Paging-Funktion hat).
Wo finde ich eine Methode, um alle Benutzer aus der Datenbank zurückzugeben? Es scheint, dass es keine Möglichkeit gibt, eine Liste aller Benutzer zu erhalten oder herauszufinden, wie viele Benutzer sich in der Datenbank befinden.
- Aktualisieren
Beim Betrachten von System.Web.Security habe ich festgestellt, dass SqlMembershipProvider wie folgt definiert ist:
%Vor%, aber diese Klasse hat keine öffentliche GetAllUsers () -Methode.
Wie kann ich auf die Basis-GetAllUsers-Methode zugreifen?
Ich denke, Sie sollten in der System.Web.dll nicht System.Web.ApplicationServices.dll suchen
So funktioniert es, dass Sie Ihren Mitgliedschaftsanbieter wie SqlMembershipProvider , konfiguriert in Ihrem web.config
. Die Membership.GetAllUsers -Methode nimmt dann die standardmäßig konfigurierte MembershipProvider
und ruft ihre Methode GetAllUsers und übergeben in 0
für die aktueller Seitenindex und int.MaxValue
für die Gesamtzahl der Datensätze pro Seite (sowie out int
, um die Gesamtzahl der Datensätze im Geschäft zu ermitteln).
Wenn Sie beim Aufruf dieser Methode Probleme haben, überprüfen Sie Folgendes:
System.Web
System.Web.ApplicationServices
System.Configuration
System.Web.Security
verweist
using
-Anweisungen am Anfang der Datei web.config
hat einen registrierten Standard MembershipProvider
MembershipProvider
. Daher können nicht alle Methoden, die Sie in Membership
sehen, auf Typen gefunden werden, die von Membership
stammen. MembershipProvider
ist statisch und daher sind alle seine Mitglieder einschließlich Membership.GetAllUsers statisch gut. Membership
ist zur Bequemlichkeit da, die meisten Mitglieder rufen den registrierten Standard Membership
. Aus der Dokumentation
Bemerkungen
GetAllUsers gibt die Informationen für alle Mitgliedschaftsbenutzer für eine Anwendung als eine Sammlung von MembershipUser-Objekten zurück. Seien Sie vorsichtig, wenn Sie die GetAllUsers-Methode mit sehr großen Benutzerdatenbanken verwenden, da die resultierende MembershipUserCollection in Ihrer ASP.NET-Seite die Leistung Ihrer Anwendung beeinträchtigen kann.
Die Frage lautet "Wo ist GetAllUsers im Mitgliedschaftsanbieter?"
Die Antwort ist, dass es nicht im MembershipProvider ist. Es ist in System.Web.Security.Membership
Der MSDN-Link, den Sie in Ihrer Frage angegeben haben, sagt das Gleiche.
Die Methode GetAllUsers ist statisch und überladen.
%Vor%Wenn Sie Probleme mit dem Namespace haben, haben sie einige Dinge zwischen .net 3.5 und .net 4.0
verschobenDas hat mich vor ein paar Jahren gebissen.
.Net 4.0 System.Web.Security.MembershipProvider mehrdeutig Referenz?