Ich bin dabei, eine Authentifizierung in meiner ASP.NET-Anwendung mit den folgenden Anforderungen zu erstellen.
Ich möchte Feedback zu diesen Anforderungen bekommen? Irgendwelche Ideen, wie dies mit ASP.NET Framework (so viel wie möglich) zu implementieren? (Ich bin aber auch daran interessiert zu erfahren, wie dies ohne Mitgliedschaften erreicht werden kann)
Ich denke, Sie müssen hier eine Reihe von Berechtigungsabfrage-Methoden in Ihren Geschäftsobjekten oder Ihrem Controller implementieren. Beispiele: CanRead (), CanEdit (), CanDelete ()
Wenn die Seite gerendert wird, muss sie das Geschäftsobjekt abfragen und die vom Benutzer autorisierten Funktionen ermitteln und Funktionen basierend auf diesen Informationen aktivieren oder deaktivieren. Das Geschäftsobjekt kann wiederum Rollen oder zusätzliche Datenbankabfragen verwenden, um die Berechtigungen des aktiven Benutzers zu ermitteln.
Ich kann mir keine Möglichkeit vorstellen, diese Berechtigungen zentral zu deklarieren. Sie müssen in die Implementierung der Funktionen verteilt werden. Wenn Sie jedoch das Design verbessern möchten, können Sie die Abhängigkeitsinjektion verwenden, um Autorisierer in Ihre Geschäftsobjekte einzufügen und so die Implementierungen getrennt zu halten.
Es gibt Code, der dieses Modell in Rocky Lhotkas Buch verwendet. Die neue Version ist nicht in JoshRivers 19.12.2008, 22:00
Ich denke, eine der besten Implementierungen, von denen ich denke, dass sie Ihre Anforderungen erfüllen, ist hier dokumentiert . Das einzige Problem ist, dass es sich in NHibernate einklinkt, aber Sie können dies als Vorlage verwenden, um Ihre eigene Berechtigungsimplementierung zu erstellen und einfach in Ihr eigenes Ereignismodell statt in NHibernates Interceptors einzubinden.
Ich arbeite selbst an einem solchen System und werde es bloggen, sobald ich damit zufrieden bin.
Die seit ASP.NET 2.0 bereitgestellte Mitgliedschafts-API sollte Ihren Anforderungen entsprechen. Das einzige, was ich befürchte, dass es nicht direkt unterstützt, sind hierarchische Rollen. Sie können jedoch die normale rollenbasierte Sicherheit problemlos mit einer anderen manuell geschriebenen hierarchischen Rollentabelle verwenden, um die erforderlichen Dinge zu erreichen.
Lesen Sie hier, wie Sie die ASP.NET-Mitgliedschaft einrichten: Ссылка
Sie können Ordner / Seiten usw. in Gruppen / Benutzer gruppieren. Ich denke, Sie werden das ausreichend finden!
Das Hiarchy wird leicht verwaltet, indem die generierten Datenbanken und Prozeduren erweitert werden.
Ich habe ein Projekt auf CodePlex erstellt, das will, dass Sie wollen: Ссылка
Ich würde die Benutzer / Rollen-Beziehung so aufbauen, dass Benutzer mehr als eine Rolle haben können. Ich sehe eine 1-1-Beziehung und werde nervös, weil ich weiß, dass jemand, auch wenn wir jetzt keinen Bedarf dafür sehen, irgendwann möchte, dass jemand sowohl ein Sales-Benutzer als auch ein Customer Service-Benutzer ist.
>In unserem Kundensystem verwenden wir Rollen, um Dinge wie "delinquentCustomer" zu überlagern. Auf diese Weise sind die ursprünglichen Berechtigungen noch gültig - sobald sie ihre Rechnung bezahlen. Es lohnt sich, diesen Ansatz zu betrachten.
Tags und Links c# asp.net security forms-authentication