meine Antwort ist wahrscheinlich abhängig von der Antwort auf diese Frage: ist dies eine Enterprise-Anwendung, die mit Active Directory in ein Netzwerk lebt?
Wenn die Antwort ja ist, dann sind die Schritte, die ich würde:
1) Erstellen Sie globale Gruppen für Ihre Anwendung, in meinem Fall, ich hatte eine APPUSER Gruppe und eine AppAdmin Gruppe.
2) Sie können auf Ihren SQL Server im MIXED AUTHENTICATION-Modus zugreifen und dann Ihre APPUSER-Gruppe (n) als SQL SERVER LOGIN Ihrer Datenbank mit den entsprechenden CRUD-Rechten für Ihre DBs zuweisen Stellen Sie sicher, dass Sie auf den SQL SERVER mit Vertrauenswürdige Verbindung = True in Ihrer Verbindungszeichenfolge zugreifen.
An diesem Punkt ist Ihr AD Store für die Authentifizierung verantwortlich. Da Sie über eine TRUSTED CONNECTION auf die Anwendung zugreifen, wird die Identität des Kontos, von dem die Anwendung ausgeführt wird, an den SQL Server übergeben.
Jetzt für die Autorisierung (d. H. Ihre Anwendung zu sagen, was der angemeldete Benutzer tun darf), ist es eine einfache Frage der AD für eine Liste von Gruppen, denen der angemeldete Benutzer Mitglied ist. Suchen Sie dann nach den entsprechenden Gruppennamen und bauen Sie Ihre Benutzeroberfläche basierend auf der Mitgliedschaft auf diese Weise auf.
Die Art und Weise meine Anwendungen Arbeit sind also:
- die Anwendung starten, werden Anmeldeinformationen auf der Basis der angemeldeten Benutzer, dies ist der Hauptaspekt der Authentifizierung (dh sie daher anmelden können, in dem sie existieren)
- ich alle Gruppen für die Windows-Identität in Frage
- ich überprüfen, für die Standard-Benutzer-Gruppe - wenn diese Gruppe für die Windows-Identität in Frage existiert nicht, dann ist das ein Authentifizierungs-FAIL
- ich überprüfen, für ADMIN Benutzer Gruppe - Mit diesem ex henden in Gruppen des Benutzers, modifizieren ich den Zugriff auf die Benutzeroberfläche Komponenten Verwaltung
- Anzeige der UI
ich dann entweder eine Hauptaufgabe der bestimmten Rechte/etc auf es zu ermöglichen, oder ich globale Variablen verwenden, die Ich kann während der Erstellung meiner Formulare auf die entsprechende Benutzeroberfläche zugreifen (z. B. Wenn mein Benutzer kein Mitglied der ADMIN-Gruppe ist, würde ich alle DELETE-Schaltflächen ausblenden.
Warum schlage ich das vor?
Es ist eine Frage der Bereitstellung.
Ich habe die Erfahrung gemacht, dass die meisten Unternehmensanwendungen von Netzwerkingenieuren und nicht von Programmierern bereitgestellt werden. Daher ist eine Authentifizierung/Autorisierung in der Verantwortung von AD sinnvoll /Genehmigung.
Während der Erstellung neuer Benutzer für das Netzwerk erinnert sich ein Netzwerkingenieur (oder wer auch immer für die Erstellung neuer Netzwerkbenutzer verantwortlich ist) daran, Gruppenzuweisungen durchzuführen, während sie IN AD sind um in ein Dutzend Anwendungen zu gehen, um Zuordnungen von Autorisierungen zu analysieren.
Dies hilft mit dem Labyrinth der Berechtigungen und Rechte, die neue Hires gewährt werden müssen oder die das Unternehmen verlassen müssen und es Authentifizierung und Autorisierung in dem zentralen Repository, wo es gehört (dh in AD @ der Domain) Controller-Ebene).
wollen nur sicherstellen, dass Sie wissen: C# ist die Sprache. Es hat keine Sicherheit. .NET ist die Plattform. Dort ist die Sicherheit. –
Thnx John - Ich verstehe den Unterschied. –
Entweder Sie cann Asp.net Mitgliedschaft verlängern oder können Sie bereit verwenden Rahmen zu stopfen - VisualGuard - http://www.visual-guard.com/EN/-source_soforum.html –