2010-08-24 22 views
8

Ich war immer weg von asp.net Mitgliedschaft wie es aufgebläht schien, und (zu der Zeit) nicht testbar. Im Fall von asp.net MVC speziell, verwendet jemand eine alternative Lösung für die Zuweisung von Rollen an Benutzer, und Speichern einiger Zusatzinformationen für den angemeldeten Benutzer? Irgendeine Empfehlung? Ist es verrückt, nur Ihre eigenen zu rollen, nur die Funktionalität zu implementieren, die Sie brauchen?ASP.NET Mitgliedschaft Alternativen

+0

Wenn Sie eine Alternative benötigen, dann haben Sie wahrscheinlich einige Gründe ... können Sie sie mit uns teilen? Was fehlt in der asp.net-Mitgliedschaft, die Sie verwenden möchten? –

+3

Ich bin mir nicht sicher, wie es "aufgebläht" ist. Wenn überhaupt, ist es ein bisschen mager auf der Rollenseite. – Greg

+0

Sie können Spalten zu den von aspnet_regsql generierten Tabellen hinzufügen, und es funktioniert gut. Sie können dann in einem Entitätsmodell auf die Tabellen verweisen, wenn Sie möchten. Auf diese Weise können Sie den Mitgliedschaftsanbieter von ASP.NET weiterhin in dem Umfang nutzen, in dem er für Sie funktioniert, Sie können jedoch auch von den zusätzlichen Informationen profitieren, die Sie speichern. – Andrew

Antwort

3

ASP.NET-Mitgliedschaft verwendet ein Provider-Modell für den Speicher. SqlMembershipProvider erbt Verschlüsselungs-/Hashing-Passwortfunktionen von der abstrakten MembershipProvider-Klasse. Sie können jedoch auch MembershipProvider erben und diese Funktionalität in einem benutzerdefinierten Anbieter abrufen, wenn Sie dies wünschen.

Wenn Sie den SqlMembershipProvider verwenden, erhalten Sie eine voll funktionsfähige Mitgliedschaftsdatenbank mit vollständiger Passwortverwaltung (Überprüfen, Ändern, Zurücksetzen, ungültige Kennwortversuche) und Benutzerverwaltung (CRUD-Operationen, Sperren von Benutzern).

All dies ist auf einer API-Ebene. Sie können die gewünschten UIs für die API erstellen.

Die Verwendung des SqlMembershipProvider erfordert nicht, dass Sie den Rollenanbieter oder den Profilanbieter oder eines dieser anderen Elemente verwenden, und Sie können Ihre eigenen für diese Dinge ohne Auswirkungen auf die Mitgliedschaft rollen. Zumindest würde ich empfehlen, den gut getesteten SqlMembershipProvider als Kern Ihrer Sicherheit für die grundlegenden Dinge zu verwenden.

+0

Ich denke, das Problem damit ist, wenn Sie es erweitern müssen. Oder Ihr vorhandenes Schema stimmt nicht mit der SqlMembershipProvider-Datenbank überein. – Roco72

+0

Erweiterung des SqlMembershipProvider könnte problematisch sein. Persönlich verwende ich den SqlMembershipProvider in einer Anwendung, die hauptsächlich auf Oracle läuft. Diese Tabellen sitzen nur in ihrer eigenen kleinen Datenbank und sorgen sich nicht um die Hauptgeschäftsdatenbank, und sie scheint für mich gut zu funktionieren. – Greg

0

Ich habe DotNetOpenAuth erfolgreich als Mitgliedschaft und Rollenanbieter implementiert. Es handelt sich nicht um eine vollständige Implementierung, sondern um die häufigsten Szenarien.

Sie bieten VS Vorlagen für den Einstieg.