Frage

Wir schlagen eine gute Anzahl von Wänden und Stolpersteine, wie wir unsere eigene Mitgliedschaft erstellen, basierend auf MembershipProvider, MembershipUser und Roleprovider etc.

Wir haben eine Reihe von interessanten Anforderungen und Mitgliedschaftsanbieter nicht erscheint uns viel zu helfen, in sie zu erreichen:

  • Benutzer können mehrere Logins haben.
  • Benutzer einen Benutzernamen nicht direkt (aber kann einen Login haben, die einen Benutzernamen hat).
  • Die Benutzer haben eine eindeutige Referenznummer (zur Zeit eine automatische Primärschlüssel).

Um dies zu realisieren, haben wir zwei Tabellen:. Benutzer, die eine one-Beziehung mit Logins hat

Das bedeutet effektiv haben wir einen Nutzer, der (in einer hypothetischen Welt) über ihre Active Directory-Konto anmelden kann automatisch (wenn möglich) und über eine OpenID oder einen Benutzername / Passwort-Kombination alternativ. Wir werden auch einige Nutzer haben, die kein AD-Konto haben.

Ich hatte zunächst versucht, wieder purposing die Mitgliedschaft Klassen durch die Schaffung von:  - CustomMembershipProvider  - CustomMembershipUser  - CustomRolesProvider

Aber alle meine Kämpfe gegen sie hat mir gerade gegeben schwarzen Augen und blaue Flecken, es ist wirklich, wirklich will einen Benutzernamen!

Habe ich dies der beste Weg gegangen? Soll ich von stratch beginnen und nichts zu erben? Soll ich es auf der IProvider Klasse werden zu stützen? Oder vielleicht die Generic und Generic Klassen? Oder bin ich einfach nur etwas mit MembershipProvider fehlt?

Ich möchte die Ende Programmiererfahrung so einfach zu halten, wie es für die Out-of-the-box-Mitgliedschaft Sachen ist, z.

Membership.GetCurrentUser();

Und vermeiden Sie eine weniger als vereinfachend Ende-Coder Erfahrung ...

War es hilfreich?

Lösung

Ich hatte ähnliche Erfahrungen und beschlossen, allen Benutzern eine gemeinsame Mitgliedschaft für Rollenprüfung zu geben, usw. und wo es zu differenct AuthenticationProviders (OpenID, AD, Membership Provider, etc.), so dass sie anders authentifiziert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top