Frage

Ok, also für ein bisschen Architektur Führung ich suche, mein Team ist immer eine Chance, bestimmte Entscheidungen mit einem neuen Feature neu zu werfen, die wir bauen, und ich wollte sehen, was dachte SO :-) Es gibt natürlich bestimmte Dinge, die wir nicht ändern, so wäre die Lösung in diesem Modell passen müssen. Das heißt, dass wir eine ASP.NET-Anwendung haben, die Web-Service verwendet, damit die Benutzer das System zu Aktionen auf.

Das Problem kommt in, weil, wie bei vielen Systemen, verschiedenen Benutzern den Zugriff auf verschiedene Funktionen benötigen. Einige Rollen haben Zugriff auf die Y-Taste, und andere haben Zugriff auf Y und B-Taste, während ein anderer noch nur Zugriff auf B. Die meiste Zeit hat, die ich sehe diese Entwickler nur setzen in einem mish-mosh von if-Anweisungen zu behandeln der UI-Zustand. Meine Befürchtung ist, dass nicht Einhalt geboten, das ein wartbaren Chaos werden wird, denn neben Berechtigungslogik in der GUI setzt, muss es in dem Web-Service gestellt werden (die über Ajax genannt werden), um sicherzustellen, dass nur autorisierte Benutzer rufen bestimmte Methoden .

so meine Frage an Sie ist, wie kann ein System entwickelt werden, um die zufälligen Ad-hoc zu verringern, wenn Aussagen hier und da, dass der Check für bestimmte Rollen, die sowohl in der GUI / webform Code wiederverwendet werden könnten, und Web-Service Code.

Nur für Klarheit, ist dies eine ASP.NET Web-Anwendung, Webformulare verwenden und Script # für die AJAX-Funktionalität. Lassen Sie sich nicht das Skript # Sie werfen eine Antwort aus, es ist nicht grundlegend anders als asp.net Ajax: -)

War es hilfreich?

Lösung

Der Übergang von der traditionellen Gruppe, Rolle oder Betrieb Ebene Erlaubnis gibt es eine Push-to „forderungsbasierte“ Autorisierung, wie das, was mit WCF geliefert wurde.

Zermatt ist der Codename für die Microsoft Klassen- Bibliothek, die Entwickler beim erstellen forderungsbasierte Anwendungen auf dem Server und Client helfen. Active Directory wird eine der STS werden eine Anwendung gegen gleichzeitig zu genehmigen wäre in der Lage, mit Ihrer eigenen sowie anderen Industriestandard-Server ...

Andere Tipps

Code Complete (p. 411) Steve McConnell gibt folgenden Rat (den Bill Gates liest als Gute-Nacht-Geschichte in der Microsoft kommerziell).

„verwendet, in geeigneten Fällen, tabellengesteuerten Code ist einfacher als komplizierte Logik, einfacher zu ändern und effizienter zu gestalten.“

„Sie können eine Tabelle verwenden Logik zu beschreiben, die zu dynamisch ist in Code zu repräsentieren.“

„Der tabellengesteuerten Ansatz ist wirtschaftlicher als der bisherige Ansatz [rotes objektorientiertes Design]“

eine Tabelle basierten Ansatz können Sie ganz einfach neue „Benutzer“ hinzufügen können (wie in der Modellierung Idee eines Benutzer / Agenten zusammen mit seinen Aktionen). Es ist eine gute Möglichkeit, viele „wenn“ s zu vermeiden. Und ich habe es schon für Situationen wie die Ihre verwendet, und es ist den Code schön und ordentlich.

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