Frage

Ich bin zur Umwandlung einer sehr alt, aber die Arbeit klassische ASP-Seite ASP.Net.

Es hat eine ganz individuelle geschrieben Benutzer-Management-System. Während es gut funktioniert, braucht es wirklich eine Auffrischung, wie ich es flexibler für einige zukünftige Projekte in Arbeit sein soll.

Wenn ich jemand darauf ansprach, sagte sie „Sie müssen den Microsoft-Provider verwenden“ und referierte darüber, wie Microsoft lösen all diese Dinge kostenlos und wie gut sie sind und sollten so weit wie möglich wieder verwendet werden.

Ich habe ziemlich viel Forschung getan (vor allem bei den Videos suchen auf http://asp.net/learn ) und bin sehr beeindruckt von einigen der Funktionen, da es per Drag & Drop zu Komponenten für Elemente erscheint, die mir ewig dauern würde zu schreiben.

Allerdings ist die aktuelle Mitgliederdatenbank zu erklären kompliziert, ist es eine ganz individuelle geschrieben Datenbank, die viele internen Beziehungen haben ... Es ist nicht wirklich „kompatibel“ mit den Standard-Microsoft-Provider.

ich einen Blick auf genommen haben Gewusst wie: eine benutzerdefinierte Membership Provider erstellen? , aber ich fühle mich ein wenig aus meiner Komfortzone und besorgt es wird entweder langsam sein, ein Sicherheitsloch einführen oder wird einfach nicht funktionieren.

Am Ende des Tages sollte die Microsoft Membership Provider für mich arbeiten - die einzigen Anpassungen ich wirklich brauche die Anmeldung ist der Benutzername / Passwort-Feld in meiner Datenbank zu verwenden, und der Benutzer-Skript erstellen, die eine Menge von benutzerdefinierten Code hat zu mehreren Drittsystemen (um die Bereitstellung von Dienstleistungen usw.).

Ich habe mich nur gefragt, was würden Sie mit einer ähnlichen Situation konfrontiert, wenn tun?

  1. Mit der Mitgliedschaftsanbieter Microsoft und es irgendwie bekommen für Sie arbeiten (obwohl ich Vorschläge möchte)

  2. Mit der Mitgliedschaft Provider Microsoft aber benutzerdefinierten Anbieter verwenden, um Ihren Code angepasst ist.

  3. Verwenden Sie Ihre eigene ganz individuelle Lösung?

War es hilfreich?

Lösung

Das Video macht die Dinge komplizieren :) Wenn Sie einen speziellen Provider dann Reflektor über die bestehenden zu implementieren gehst ist ein guter Anfang:)

Als schnelle und schmutzige Option könnte man natürlich, die gespeicherten Prozeduren hacken, dass die SQL-Mitgliedschaftsanbieter verwenden aber der benutzerdefinierten Code zur Bereitstellung von Diensten ist wahrscheinlich, dass Stretching.

Wenn man darüber nachdenkt, die Remote-Bereitstellung von Dienstleistungen nicht wirklich in einem Mitgliedschaftsanbieter gehören, ist es nicht wirklich eine Membership-Funktion - alle Mitgliedschaft ist Benutzernamen und Passwörter und Authentifizierung um sie herum bietet. Mein eigenes Gefühl ist, dass Sie die Bereitstellung von Diensten von dort bewegen sollte, und es auf der ASP.NET-Website ausführen, nachdem ein Benutzer erstellt wurde - auch wenn das nur eine gespeicherte Prozedur aufrufen, wenn der Mitgliedschaftsanbieter seine Sache getan hat. Wenn Sie dies tun können Sie feststellen, dass die SQL-Mitgliedschaftsanbieter alles tun, werden Sie es (wahrscheinlich mit den Rollen und Profil-Provider auch) benötigen, und damit haben Sie viel weniger Code zu schreiben!

Andere Tipps

Ich habe in ähnlichen Situationen in der Vergangenheit. In beiden Fällen haben wir benutzerdefinierte Implementierungen der Anbieter (MembershipProvider, Roleprovider, Profile) um den bestehenden Mechanismus.

In beiden Fällen haben wir nur die Provider-Implementierungen für den Lesezugriff, beispiels geben uns die einfache Validierung gubbins in web.config und ähnliches. Der Code Benutzerverwaltung gelassen wurde und allein, wie es ganz gut funktioniert.

Wenn die vorhandenen Anbieter Werke (hat die richtigen Felder für Ihre Daten), die Verwendung zu starten. Sie können sehr leicht, die später mit einem Kunden-Anbieter ersetzen (nur eine einzige Konfigurationswertänderung).

Hüten Sie sich vor es ist kein „out of the box“ ASP.NET-Management-Schnittstelle für das, müssen Sie Ihre eigene Rolle oder einem Dritten eine solche verwenden.

Mit meinem speziellen MembershipProvider gegen meine eigenen Datenbank-Tabellen zu arbeiten.

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