2008-12-09 20 views
7

Ich bin ein C# -Entwickler. Ich entwickle beide Windows & Web-Anwendungen. Ich möchte eine Winforms-Anwendung erstellen, die über ein rollenbasiertes System verfügt. Alle Benutzer müssen in Rolle/Gruppe (n) sein. Dann weisen wir der Rolle/Gruppe Berechtigungen wie "Anzeigen, Hinzufügen, Aktualisieren, .." zu. Die Rolle/Gruppe ist dynamisch, so dass wir sie definieren können.Alle Frameworks auf Authentifizierung und Autorisierung für Windows Form Application?

Gibt es irgendwelche Frameworks und gute Beispielprojekte, um es zu implementieren?

Antwort

1

Ich rolle normalerweise meine eigenen, da das .NET Framework in dieser Hinsicht ziemlich voll ausgestattet ist, aber Sie könnten versuchen, die MS Authorization and Profile Application Block.

+0

Ich werde das untersuchen müssen. Ist es ziemlich einfach, die Benutzerprofile und -rollen in einer Datenbank zusammenzufassen? – w4g3n3r

+0

Weiß nicht. Ich persönlich benutze es nie .... –

1

Für die grungy Implementierung Details, haben Sie sich "Principals" angesehen? Siehe meine Antwort here. Mit diesem Ansatz können Sie rollenbasierte Sicherheit im Code verwenden - wie zum Beispiel:

[PrincipalPermission(SecurityAction.Demand, Role="ADMIN")] 
    static void SomeMethod() 
    {...} 

Die Laufzeit selbst wird nun überprüfen, ob der Benutzer Ihre „ADMIN“ Rolle in dieses Verfahren erhalten haben, hat (natürlich Sie könnte auch die Option in der UI durch Überprüfung von IsInRole(...) deaktivieren). Sehr kraftvoll.

+2

Also warum ist das Problem, wenn wir Hardcode "ADMIN" in unserer Codebasis nicht verwenden möchten, weil wir Benutzer sich selbst definieren lassen wollen. – Samnang

+1

Dann verwenden Sie nicht die Nachfrage - überprüfen Sie einfach die Berechtigungen über IsInRole statt. –

1

Wenn Sie nicht so scharf darauf sind, das Rad neu zu erfinden, werfen Sie einen Blick auf ein Produkt namens Visual Guard. Es ermöglicht Ihnen, mit minimalem Aufwand Sicherheit zu Ihrer Anwendung hinzuzufügen, und verfügt über einen wirklich umfassenden Werkzeugsatz.

1

Wenn Sie schon Erfahrung mit ASP.NET haben, dann sind Sie wahrscheinlich mit dem ASP.NET-Mitgliedschafts-/Rollen-/Profilsystem vertraut, mit Standardanbietern und der Möglichkeit, Ihre eigenen ohne zu viel Aufwand hinzuzufügen.

Wäre es nicht großartig, wenn Sie all das in Ihren Windows Forms- oder WPF-Anwendungen verwenden könnten? Ja? Dann schauen Sie sich ASP.NET Application Services an! Sie richten einfach eine Website ein, um eine Authentifizierungs-URL bereitzustellen, und weisen Ihre App dann an, diese zu verwenden. Sie können ein eigenes benutzerdefiniertes Anmeldefenster erstellen und die App-Services bei Bedarf öffnen lassen oder Ihre eigene Logik verwenden und die Methoden selbst aufrufen.

Es hat volle Unterstützung für den "Offline-Modus", wo es einen Hash des Passworts zwischenspeichert, um es zu vergleichen, es kann auch Rollen cachen und ermöglicht Ihnen, Profileinstellungen zu verwenden.

Verwandte Themen