Bin ich falsch zu wollen mein eigenes Authentifizieren / Autorisieren System gegeben folgende Anforderungen rollen?

StackOverflow https://stackoverflow.com/questions/1860150

Frage

In meinem Haustier Projekt möchte ich mit folgenden Anforderungen ein Benutzersystem haben:

  • Es muss mit Db4o als persistance Modell
  • arbeiten
  • Ich möchte DI verwenden (mittels Turbine ) die benötigten Abhängigkeiten zu meinem Benutzermodell zu liefern
  • Es muss einfach stecken zu asp.net-mvc
  • Es muss prüfbar ohne viel Aufwand
  • Es muss viel anonyme Benutzer unterstützen wie SO tut
  • Ich möchte Authentifizierung und Autorisierung getrennt (das erste ohne das zweite leben kann)
  • Es muss sicher sein

Ich bin mir bewusst, ich bin hier ein paar Technologien vor Funktionalitäten setzen, aber da es ein Lieblingsprojekt ist, und ich will ein paar neue Sachen lernen, ich denke, dass es vernünftig ist, sie als Anforderungen aufzunehmen.

Auf halbem Weg meiner eigenen im Roll ich merkte, ich wahrscheinlich einige NIH Syndrom leide.
Da ich nicht wirklich gerne tun, wie unnötig komplex die bestehende in asp.net User-Framework ist, ist es eigentlich meist nur umso komplizierte Sachen in Bezug auf Sicherheit, die jetzt hat mir einige Zweifel geben. Wäre es vertretbar sein, weiter zu gehen und meine eigene Rolle? Wenn nicht, wie würden Sie gehen über alle oben genannten Anforderungen mit dem bestehenden IPrinciple basiertes Framework erfüllt?

War es hilfreich?

Lösung

Es klingt für mich wie das, was Sie tun möchten, ist Ihre eigene benutzerdefinierte .NET-Mitgliedschaftsanbieter rollen.

Es ermöglicht Ihnen, die verwenden integrierten ASP.NET-Authentifizierung / Autorisierung Attribut s auf Ihrem Controller Aktionen, während Sie die vollständige Kontrolle über die Umsetzung innerhalb der Anbieter geben (das können Sie es codieren, die Anforderungen zu erfüllen oben angegeben).

Direkt von MSDN ...

einen Mitgliedschaftsanbieter Implementierung

Andere Tipps

Ich glaube, Sie erkennen, wo die dünnen Teile in Ihrer Überlegung sind: nämlich, dass Sie schon enthalten, wie zu tun, was Sie als Motiv tun in warum Sie es und die NIH tun (lustig: Ich würde nie gesehen, dass vor) Ausgabe.

Setzen diejenigen beiseite, Ihr Provider ist etwas, das Sie möglicherweise wiederverwendet werden könnte, und es kann einige Ihrer künftigen Bemühungen vereinfachen. Es sollte auch dazu dienen, Sie weiter mit dem Thema vertraut zu machen. Solange Sie die ASP.NET-Framework zu verstehen, so dass Sie mit ihm arbeiten können auch, wenn Sie müssen (und nicht so spezialisiert, dass Sie nicht wissen, was Sie tun, wenn Sie nicht Ihrem Werkzeug), dann ich glauben Sie bereits Ihre Verteidigung gefertigt.

Wie DOK erwähnt, vorsichtig sein, dass Sie nicht Ihre eigene hier rollen eine größere Aufgabe zu vermeiden, was auch immer Ihre andere Funktionalität ist. Lassen Sie sich diese eine Ablenkung sein: es etwas, das Ihre Anwendung wirklich benötigt werden sollte. Wenn es nicht ist, dann würde ich zuneigen Konzentration auf Kernaufgaben Ihrer Software statt.

Wenn Sie voran gehen und Ihre eigene individuelle Lösung erstellen, erhalten Sie eine bessere Vorstellung davon, wie schwierig es ist, und welche Funktionen Sie wollen. Dies wird Ihnen helfen off-the-Shelf-Lösungen für zukünftige Projekte zu bewerten.

OTOH, verbringt viel Zeit Funktionalität zu entwickeln, die bereits leicht verfügbar ist, bedeutet, werden Sie nicht, dass die Zeit werden die Ausgaben für die Hauptfunktionalität des Projekts zu arbeiten. Es sei denn, die Authentifizierung und Autorisierung ein wichtiger Bestandteil des Projektes ist, könnten Sie Ihre Zeit investieren, und erweitern Sie Ihr Wissen, in einem anderen Bereich.

Auch ich bin auf einem Haustier Projekt mit ASP.net MVC und db4o und tat das Gleiche, so dass man zumindest nicht allein in diesem Weg hinunter :). Einer der größten Gründe für mich, mit db4o herumzuspielen als Persistenz-Schicht ist, dass vor allem Genehmigung auf Feldebene (dh ich darf Person A Vornamen sehen, aber nicht Person B Vornamen), obwohl, wenn Sie zu erreichen, ist sind komplexe SQL-Anweisungen und einem anämischen Domänenmodell gezwungen, in.

Da ich komplexe Berechtigungs Bedürfnisse hatte, die beibehalten werden musste (und synchronisiert) sowohl in der db4o und Solr Indizes begann ich auf die Arbeit meiner eigenen Ausrollen, aber nur, weil ich vorne wusste bis es war eines der Hauptmerkmale von meinem Haustier Projekt, das ich 100% ige Kontrolle über.

gesucht

Nun könnte ich immer noch die .Net Membership Provider für die Authentifizierung verwenden, aber nicht (allein) für die Zulassung von Objekten, sondern erst, nachdem ich meine POC'd Genehmigung meines eigenen Bedürfnisse verwenden.

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