LightSwitch-Authentifizierung und Autorisierung

In LightSwitch können Sie die Anwendung sicherer stellen, indem Sie unbefugte Benutzer an den Lesen verhindern, Daten, ändern oder löschen.Wenn Sie Authentifizierung und Autorisierung implementieren, müssen Benutzer ihre Identitäten überprüfen, bevor sie auf die Anwendung zugreifen können.Wenn Sie viele Benutzer Zugriff haben, können Sie auch einfacher verwalten, indem Sie Benutzerrollen erstellen, die verschiedene Ebenen von Zugriff auf bestimmte Bildschirmen und an Daten und jeden Benutzer der entsprechenden Rolle dann zuweisen haben.

Bei einer Gehaltslistenanwendung kann es Mitarbeitern z. B. ermöglicht werden, ihre Gehaltslisteninformationen anzuzeigen, während die Änderung nicht möglich ist.Einem Gehaltslisten-Sachbearbeiter kann jedoch die Berechtigung gewährt werden, die Mitarbeiterinformationen anzuzeigen und zu ändern.Der Rolle "Mitarbeiter" würden die Mitarbeiter zugewiesen werden, und der Rolle "Vorgesetzter" würde der Sachbearbeiter zugewiesen werden.

Sie können Berechtigungen auch einfacher verwalten, indem Sie die Benutzer den Sicherheitsgruppen in Active Directory hinzufügen und diesen Gruppen dann Berechtigungen zuweisen.Da die Mitgliedschaft und Berechtigungen vererbt werden, können Sie Berechtigungen nicht nur für eine Gruppe gewähren oder verweigern, sondern auch für alle Untergruppen, indem Sie nur eine Änderung vornehmen.Beispielsweise können Sie Bob in Active Directory der Gruppe Sales hinzufügen.Wenn Sales eine Untergruppe von Marketing ist, wird jede Berechtigung, die Sie der Gruppe Marketing gewähren, auch Bob gewährt.

Authentifizierung

Der erste Schritt beim Schützen der Anwendung ist das Aktivieren der Authentifizierung.Sie können die Formular- oder die Windows-Authentifizierung verwenden.Die Formularauthentifizierung wird von der Anwendung selbst verwaltet, und ein Benutzer muss einen Benutzernamen und ein Kennwort angeben, um auf die Anwendung zuzugreifen.Bei der Windows-Authentifizierung werden die Anmeldeinformationen, die für die Anmeldung am Computer verwendet wurden, auf dem die Anwendung ausgeführt wird, zum Authentifizieren des Anwendungsbenutzers verwendet. Es ist kein zusätzlicher Benutzername und kein Kennwort erforderlich.In beiden Fällen verwaltet ein Anwendungsadministrator eine Liste von autorisierten Benutzern. Bei der Formularauthentifizierung verwaltet der Administrator auch verschlüsselte Kennwörter.

So aktivieren Sie die Authentifizierung

  1. In Projektmappen-Explorer öffnen Sie das Kontextmenü für den Knoten Eigenschaften, und wählen Sie dann Öffnen aus.

  2. In Anwendungs-DesignerZugriffssteuerung wählen Sie die Registerkarte aus.

  3. In der Liste Wählen Sie den zu verwendenden Authentifizierungstyp aus: wählen Sie entweder Windows-Authentifizierung verwenden oder Formularauthentifizierung verwenden aus.

    Wenn Sie Windows-Authentifizierung verwenden ausgewählt haben, klicken Sie entweder das Optionsfeld Nur in der Anwendung auf dem Bildschirm "Benutzer" angegebene Benutzer zulassen oder das Optionsfeld Alle authentifizierten Windows-Benutzer zulassen.

    Die Anwendung erfordert für den Zugriff auf die Anwendung von Benutzern nun die Bereitstellung von Anmeldeinformationen.

So deaktivieren Sie die Authentifizierung

  1. In Projektmappen-Explorer öffnen Sie das Kontextmenü für den Knoten Eigenschaften, und wählen Sie dann Öffnen aus.

  2. In Anwendungs-DesignerZugriffssteuerung wählen Sie die Registerkarte aus.

  3. In der Liste wählen Sie Wählen Sie den zu verwendenden Authentifizierungstyp aus:Authentifizierung nicht aktivieren aus.

    Die Anwendung erfordert für den Zugriff auf die Anwendung von Benutzern dann keine Bereitstellung von Anmeldeinformationen, und jeder Benutzer kann auf jeden Teil der Anwendung zugreifen.

Berechtigungen

Der nächste Schritt zum Schutz der Anwendung ist die Erstellung von Berechtigungen.Sie können Berechtigungen für Bildschirme, Befehle, Datenentitäten und Abfragen definieren.Definieren Sie zuerst im Anwendungs-Designer ein Berechtigungsobjekt.Dann können Sie in einer der Can-Methoden, z. B. CanRun<Bildschirmname> oder <Abfragename>_CanExecute, im Code auf das Objekt verweisen.Im Code in diesen Methoden wird in der Regel überprüft, ob der aktuelle Benutzer oder die Rolle über die Berechtigung verfügt. Das Formular wird dann nur angezeigt bzw. die Abfrage wird nur ausgeführt, sofern die Überprüfung der Berechtigung zu einem positiven Ergebnis geführt hat.

Um den Code zu testen, führen Sie die Anwendung einmal als Benutzer aus, der über die Berechtigung verfügt, und dann als Benutzer, der nicht über die Berechtigung verfügt.Sie können die Identität eines Benutzers annehmen, indem Sie Debugberechtigungen festlegen, wenn Sie die Anwendung testen oder debuggen.

So erstellen Sie eine Berechtigung

  1. In Projektmappen-Explorer öffnen Sie das Kontextmenü für den Knoten Eigenschaften, und wählen Sie dann Öffnen aus.

  2. In Anwendungs-DesignerZugriffssteuerung wählen Sie die Registerkarte aus.

  3. Definieren Sie Berechtigungen, oder wählen Sie für das Debuggen zu verwendende Berechtigungen aus im Raster in der Spalte Name, wählen <Add New Permission> Sie aus und geben einen programmgesteuerten Namen für die Berechtigung ein.

    Der Name muss mit einem alphabetischen Zeichen beginnen und kann nur alphabetische oder numerische Zeichen oder Unterstriche enthalten.

  4. In der Spalte Anzeigename geben Sie den Namen der Berechtigung ein, wie Sie sie im Bildschirm angezeigt werden sollen, dass der Anwendungsadministrator verwendet, um Rollen zuweisen.

  5. In der Spalte Beschreibung geben Sie eine Beschreibung der Berechtigung ein.

So schreiben Sie Code, um Berechtigungen für einen Bildschirm festzulegen

  1. In Projektmappen-Explorer öffnen Sie das Kontextmenü für einen Bildschirmknoten, und wählen Sie dann Öffnen aus.

    Bildschirm-Designer für diesen Bildschirm wird geöffnet.

  2. In der Liste wählen Sie Code schreibenCanRunScreenName aus, in dem ScreenName der Name des ausgewählten Bildschirms befindet.

  3. In Code-Editor geben Sie den folgenden Code in der - Methode CanRunScreenName ein:

    If Current.User.HasPermission(Can_View_Products) Then
        result =  True
    Else
        result = False
    End If
    
    if (Current.User.HasPermission(Permissions.Can_View_Products)) 
    {
        result = true;
    } 
    else 
    {
        result = false;
    }
    

    Dieser Code wird jedes Mal ausgewertet, wenn die Anwendung startet.

    HinweisHinweis

    Beachten Sie, dass der Beispielcode eine Überprüfung auf eine Berechtigung mit dem Namen "Can_View_Products" durchführt.Ersetzen Sie den Namen einer Berechtigung, den Sie in der Anwendung definiert haben, wo auch immer er angezeigt wird.

So schreiben Sie Code, um Berechtigungen für einen Befehl festzulegen

  1. In Projektmappen-Explorer öffnen Sie das Kontextmenü für einen Bildschirmknoten, und wählen Sie dann Öffnen aus.

    Bildschirm-Designer für diesen Bildschirm wird geöffnet.

  2. Im Bereich Struktur der Bildschirminhalte erweitern Sie einen Befehlsknoten, und dann den Befehl aus, für den Sie Code schreiben möchten.

  3. Öffnen Sie das Kontextmenü für den Befehl, und wählen Sie dann ButtonName**_CanExecute** aus, in dem ButtonName der Name des Befehls ist, den Sie ausgewählt haben.

  4. In Code-Editor geben Sie den Code, den Sie in der - Methode ButtonName**_CanExecute** soll.

    HinweisHinweis

    Ein Beispiel für Code finden Sie oben in diesem Thema unter "So schreiben Sie Code zum Festlegen von Berechtigungen für einen Bildschirm".

So schreiben Sie Code, um Berechtigungen für eine Entität festzulegen

  1. In Projektmappen-Explorer öffnen Sie das Kontextmenü für einen Entitätsknoten, und wählen Sie dann Öffnen aus.

    Entity Designer für diese Entität wird geöffnet.

  2. In der Liste Code schreiben wählen Sie eine Methode EntityName**_Can**Vorgang aus, in der EntityName der Name der Entität ist, und Vorgang der Name des Vorgangs ist, für den Sie Code schreiben möchten.

    HinweisHinweis

    Die verfügbaren Methoden sind vom Kontext.Beispiele sind CanDelete und CanUpdate.

  3. In Code-Editor geben Sie den Code, den Sie in der - Methode EntityName**_Can**Vorgang soll.

    HinweisHinweis

    Ein Beispiel für Code finden Sie oben in diesem Thema unter "So schreiben Sie Code zum Festlegen von Berechtigungen für einen Bildschirm".

So schreiben Sie Code, um Berechtigungen für eine Abfrage festzulegen

  1. In Projektmappen-Explorer öffnen Sie das Kontextmenü für einen Abfragenknoten, und wählen Sie dann Öffnen aus.

    Abfrage-Designer für diese Abfrage wird geöffnet.

  2. In der Liste Code schreiben wählen Sie eine der Methoden Abfragename**_CanExecute** aus, in denen Abfragename der Name der Abfrage.

  3. In Code-Editor geben Sie den Code, den Sie in der - Methode Abfragename**_CanExecute** soll.

    HinweisHinweis

    Ein Beispiel für Code finden Sie oben in diesem Thema unter "So schreiben Sie Code zum Festlegen von Berechtigungen für einen Bildschirm".

So aktivieren Sie Berechtigungen zum Debuggen

  1. In Projektmappen-Explorer öffnen Sie das Kontextmenü für den Knoten Eigenschaften, und wählen Sie dann Öffnen aus.

  2. In Anwendungs-DesignerZugriffssteuerung wählen Sie die Registerkarte aus.

  3. Im Definieren Sie Berechtigungen, oder wählen Sie für das Debuggen zu verwendende Berechtigungen aus Raster wählen Sie die Berechtigung, die Sie zum Debuggen aktivieren möchten, und wählen Sie dann das Kontrollkästchen. Für Debuggen gewährt

Veröffentlichen

Wenn Sie die Sicherheit der Anwendung helfen, ist der letzte Schritt, in veröffentlichen.Wenn Sie zum ersten Mal veröffentlichen, müssen Sie Authentifizierungsinformationen für einen Standardadministrator angeben.Wenn Sie erneut veröffentlichen, müssen Sie diesen Schritt nicht überprüfen.

So stellen Sie Authentifizierungsinformationen bereit, wenn Sie eine Anwendung veröffentlichen

  1. In Assistent zum Veröffentlichen von LightSwitch-Anwendungen wählen Sie die Seite Sicherheitseinstellungen aus, und aktivieren Sie dann das Optionsfeld Ja, Anwendungsadministrator erstellen.

    HinweisHinweis

    Sie müssen die verbleibenden Schritte nur ausführen, wenn Sie direkt auf einem Server veröffentlichen.Wenn Sie ein Paket erstellen, werden Sie aufgefordert, ein administrative Konto hinzuzufügen, wenn Sie das Paket bereitstellen.

  2. Im Benutzername Textfeld geben Sie einen Benutzernamen ein.

    Wenn Sie die Windows-Authentifizierung verwenden, müssen Sie einen gültigen Benutzernamen Windows angeben, der das Formular Domäne\Benutzername verfügt.

    TippTipp

    Sie können auch in Active Directory eine Sicherheitsgruppe als Standardadministrator zuweisen.

  3. Im Vollständiger Name Textfeld geben Sie den vollständigen Namen des Benutzers oder der Gruppe ein, die der standardmäßigen Administrator sind.

  4. Im Kennwort Textfeld geben Sie ein Kennwort ein.

    HinweisHinweis

    Wenn Sie die Windows-Authentifizierung verwenden, werden Vollständiger Name, Kennwort und Kennwort bestätigen Felder nicht.

  5. Im Kennwort bestätigen Textfeld geben Sie das Kennwort erneut ein.

    Beachten Sie den Benutzernamen und das Kennwort an, da Sie sie das erste Mal angeben müssen, dass Sie die Anwendung ausführen.

  6. Schließen Sie die Veröffentlichung der Anwendung ab.

Benutzer und Rollen

Wenn Sie der Anwendungsadministrator sind, müssen Sie die veröffentlichte Anwendung zum ersten Mal ausführen.Sie verwenden dann den Bildschirm Rollen und den Bildschirm Benutzer, um Rollen zu definieren, weisen Berechtigungen zu Rollen zu und weisen den Benutzern oder den Benutzergruppen Rollen.Sie können auf diese Bildschirme in der laufenden Anwendung zur Entwurfszeit zugreifen oder, wenn sie bereitgestellt hat.Legen Sie zur Entwurfszeit eine Debugberechtigung fest, um auf die Bildschirme zuzugreifen.In einer bereitgestellten Anwendung kann jeder, dem die Berechtigung "Sicherheitsverwaltung" gewährt wurde, auf die Bildschirme zugreifen.

HinweisHinweis

Um anzumelden, müssen Sie den Benutzernamen verwenden und das Kennwort haben Sie an als Sie die Anwendung veröffentlicht haben.

So definieren Sie eine Rolle und weisen Berechtigungen zu

  1. In einer veröffentlichten Anwendung, die über Administratorberechtigungen verfügen, auf der Menüleiste ausgeführt wird, wählen Sie Rollen aus.

  2. Im Bereich Rollen die Schaltfläche +... (Hinzufügen) aus.

  3. Im Dialogfeld Neue Rolle hinzufügen geben Sie einen Namen für die Rolle ein, und wählen Sie dann die Schaltfläche OK aus.

  4. Im Bereich Berechtigungen die Schaltfläche +... (Hinzufügen) aus.

    Im Raster Berechtigungen wird eine neue Zeile angezeigt.

  5. In der ersten Spalte des Rasters, wählen Sie eine Berechtigung in der Liste aus.

    Die Liste enthält alle für die Anwendung verfügbaren Berechtigungen.Sie können so viele Berechtigungen hinzufügen, wie Sie Anforderung, aber Sie die Schaltfläche +... auswählen müssen (Hinzufügen), für jeden, es hinzugefügt wird.

  6. Klicken Sie auf der Anwendungssymbolleiste wählen Sie die Schaltfläche Speichern, um die Änderungen zu speichern.

So fügen Sie einen Benutzer oder eine Benutzergruppe hinzu

  1. Wählen Sie auf der Menüleiste Sie Benutzer, um den Bildschirm Benutzer anzuzeigen.

  2. Im Bereich Benutzer und Gruppen die Schaltfläche +... (Hinzufügen) aus.

  3. Im Name Textfeld geben Sie einen Benutzernamen ein.

    Wenn Sie die Windows-Authentifizierung verwenden, müssen Sie einen gültigen Benutzernamen in Form eines Alias (terry) angeben, eine Domäne und ein Alias (example\terry), ein Alias und eine Domäne (terry@example.com) oder ein vollqualifizierter Domänenname und ein Alias (northamerica.corp.example.com\terry).Die gesamte Zeichenfolge muss weniger als 256 Zeichen enthalten.Sie können den Namen einer Sicherheitsgruppe in Active Directory auch angeben.Wenn Sie die Formularauthentifizierung verwenden, muss der Benutzername eindeutig sein und weniger als 256 Zeichen enthalten.

  4. Im Vollständiger Name Textfeld geben Sie den vollständigen Namen des Benutzers ein.

    Die Informationen im Feld Vollständiger Name werden nur zu Anzeigezwecken verwendet.

    HinweisHinweis

    Für die Windows-Authentifizierung Vollständiger Name wird das Feld automatisch auf Grundlage des Benutzernamens gefüllt und kann nicht bearbeitet werden.

  5. Im Kennwort Textfeld geben Sie ein Kennwort ein.

    HinweisHinweis

    Die Kennwort und Kennwort bestätigen Felder werden nicht angezeigt, wenn Sie die Windows-Authentifizierung verwenden.

  6. Im Kennwort bestätigen Textfeld geben Sie das gleiche Kennwort ein.

  7. Im Bereich Rollen die Schaltfläche Hinzufügen aus, und wählen Sie dann eine Rolle in der Liste Rollen aus.

    Sie können einen Benutzer zu mehreren Rollen zuweisen, indem Sie diesen Schritt für jede Rolle überprüfen.

  8. Klicken Sie auf der Anwendungssymbolleiste wählen Sie die Schaltfläche Speichern, um die Änderungen zu speichern.

So entfernen Sie einen Benutzer oder eine Benutzergruppe

  1. Wählen Sie auf der Menüleiste Sie Benutzer, um den Bildschirm Benutzer anzuzeigen.

  2. Im Bereich Benutzer und Gruppen wählen Sie das Konto, das Sie entfernen möchten, und klicken Sie dann auf die Schaltfläche X (Löschen) aus.

    HinweisHinweis

    Wenn ein Benutzer mit einem Konto angemeldet ist, die gelöscht wird, kann der Benutzer oder Daten auf dem Server nicht mehr speichern.Wenn der Benutzer auf Daten vom Server versucht, wird eine Meldung Zugriff verweigert.

    HinweisHinweis

    Wenn ein Gruppenkonto gelöscht wird, verlieren alle Benutzer, deren Rolle von dieser Gruppe geerbt wurde, die Berechtigungen für diese Rolle.

  3. Klicken Sie auf der Anwendungssymbolleiste wählen Sie die Schaltfläche Speichern, um die Änderungen zu speichern.

Siehe auch

Konzepte

Sicherheitsüberlegungen für LightSwitch

Weitere Ressourcen

Projekte: Der Container für Ihre Anwendung

Active Directory-Sicherheitsgruppen