Kann ich Entity Framework mit der ASP.NET-Mitgliedschaft verwenden?

.net asp.net asp.net-membership entity-framework

Frage

Ich erstelle gerade eine App, die bereits vorhandene Benutzer und andere Daten in MS-Access-Datenbanken enthält. Die Daten werden nach SQL Server verschoben, und dazu gehört auch die Migration von Benutzern. Ich möchte EF für ORM verwenden, und ich bin mir ziemlich sicher, dass ich weiß, wie das Datenmodell in SQL Server aussehen wird. Ich bin neu bei EF, aber nicht bei ASP.NET, und ich möchte die Mitgliedschaftsfunktionen in ASP.NET nutzen. Ich denke über verschiedene Wege nach, wie ich das machen könnte, und würde gerne ein paar Ratschläge geben. Ich habe bisher nur ein wenig nach dieser Idee gesucht, vielleicht wurde sie an anderer Stelle beantwortet. Hier also eine Reihe verwandter Fragen.

  1. Kann EF direkt mit der ASP.NET-Mitgliedschaft über eine Klasse oder einen Namespace arbeiten, die mir nicht bekannt sind?

  2. Wenn ich Benutzer auf das Membership-System umstelle, sollten Sie, um ihre Benutzer-IDs mit den Daten in anderen Tabellen abzugleichen, auf den aspnet_ * -Tabellen einen weiteren Satz von Tabellen erstellen.

  3. Ich möchte eine Situation vermeiden, in der ich die integrierten Mitgliedschaftsfunktionen nur für die Benutzerauthentifizierung verwende und in den EF-Kontext umschalte, wenn ich mit Daten arbeite, die mit Benutzern gekennzeichnet sind. Es scheint unbeholfen, Benutzerinformationen zurückzuziehen, um sich an eine Spalte in einer GridView zu binden, indem sie für jede Zeile in einen Mitgliedschaftsbenutzer wechselt, aber vielleicht ist das nötig? Muss ich die Mitgliedschaftsklassen in EF für Datenabrufzwecke analysieren und replizieren?

  4. Ich habe mir überlegt, vielleicht eine Art EF-Provider für Membership zu implementieren, mit der Idee, dass der Provider dann vielleicht innerhalb des EF-Datenmodells sitzen könnte. Ist das verrücktes Gespräch? (Ich habe noch nie einen eigenen Anbieter geschrieben)

Fühlen Sie sich frei, mir zu sagen, dass ich keinen Sinn habe.

Akzeptierte Antwort

Warum nicht anders herum? Sie können Ihren eigenen Mitgliedschaftsanbieter für asp.net implementieren, der das gewünschte Modell verwendet.

Wenn die von Ihnen benötigten Funktionen nicht vollständig mit der integrierten asp.net-Mitgliedschaftsimplementierung übereinstimmen, können Sie einfach Ihren eigenen Provider einsetzen. Wenn Sie nur ein paar Features verwenden, müssen Sie nur ein paar Methoden implementieren (Sie müssen nicht die Implementierung für alle Methoden ausfüllen). Wenn Sie mehr Funktionen benötigen, als dies möglich ist, kann die Verwendung des Mitgliedschaftsanbieters Ihnen im Wege stehen.


Beliebte Antwort

  1. Das tun wir, aber wir ordnen die Mitgliedschaftstabellen nicht zu. Sie sollten nicht davon ausgehen, dass Sie den SQL-Mitgliedschaftsanbieter verwenden.
  2. Wir bilden die Benutzeridentität ab, nicht die DB-ID. Subtil, aber wichtig. Denken Sie auch daran, dass es andere Mitgliedschaftsanbieter gibt (z. B. Domänenauthentifizierung).
  3. Kannst du die Frage klären? Sie müssen nicht alle Mitgliedsinformationen in Ihrem EF-Modell replizieren, Sie benötigen jedoch eine Liste mit bekannten Identitäten.
  4. Nein, überhaupt nicht verrückt, aber schwierig und wahrscheinlich unnötig.


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum