Step 7 Benutzerverwaltung

siegener19

Level-2
Beiträge
255
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte gerne eine Benutzerberechtigung in mein Bild einfügen. Ich lese csv-Dateien ein und beschreibe damit meinen Bildbaustein. In dieser csv-Datei steht auch, wer diesen Bildbaustein verwenden darf (benutzerlevel). Steht also dort eine 1 darf der Bediener, steht da eine 2 darf nur der Techniker diese bedienen. Ich möchte jetzt, dass wenn ich ein Bild öffne, das Eingabefenster für die Benutzer- und Passworteingabe erscheint. Der Bediener gibt also seine Daten ein und wenn er nicht die Berechtigung hat, darf er den Bildbaustein nicht bedienen. Ich hoffe, ihr könnt mir weiterhelfen. Danke schon mal.

Gruß
 
Also im Prinzip sieht das ganze so aus:
Ich habe vier Schaltflächen (vier Bildbausteine). So, jetzt lese ich meine csv-Datei xy ein, wobei Schaltfläche 1 als Benutzer 1 bekommt, Schaltfläche 2 als Benutzer 4 usw. Vorab muss ich mich irgedwie anmelden, zum Beispiel als Benutzer 4, somit darf ich nur die Schaltfläche bedienen. So muss es sein.
 
Ich habe eine Idee, nur müsste ich wissen, wie man sich anmeldet. Also sobald ein Bild geöffnet wird, wird man aufgefordert, sich einzuloggen. Das würde mir auch helfen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn die Benutzer angelegt hast muss du dich auch damit anmelden können
Sind die projektierten Benutzer in der Benutzerverwaltung in der runtime auf dem hmi auch wirklich vorhanden
Kontrolle in der benutzerverwaltung des hmi
Das Häkchen beim Transfer kann man schon mal übersehen
Unter aufgabenplaner lasse ich mir bei benuzuerwechsel die Gruppennummer und Benutzername in eine Variable schreiben - vielleicht hilft dir das weiter



Gesendet aus der Tapasbar
 
Nicht "Zeige Anmeldedialog" (das braucht man eigentlich nie)
sondern an die geschützt bedienbaren Objekte eine "Berechtigung" projektieren (Eigenschaften > Sicherheit)
Dann kommt automatisch der Anmeldedialog, wenn der Bediener nicht über die erforderliche Berechtigung verfügt.

In der Benutzerverwaltung werden die Berechtigungen den Benutzergruppen zugeteilt und Benutzer angelegt, welche Mitglieder von Benutzergruppen sind und dadurch die Berechtigungen der Gruppe haben.

Über dieses Konzept kann man nicht nur niedere und höhere Berechtigungen vergeben sondern auch verschiedenen Benutzergruppen verschiedene nicht überschneidende Berechtigungen geben, z.B. Gruppe_A darf "dies" aber nicht "das", Gruppe_B darf "das" aber nicht "dies" und Gruppe_C darf "dies" und "das".

Vorsicht: hat ein Benutzer die Berechtigung "Verwalten" dann kann er sich selber in jede Benutzergruppe (auch die Benutzergruppe "Administrator") einstufen und neue Benutzer mit beliebiger Benutzergruppe anlegen, falls es eine Benutzerverwaltung in Runtime gibt.

Vorsicht: die Anzahl ungültiger Login-Versuche sollte auf 0 gesetzt werden, damit die Benutzer nicht gesperrt werden. Oder es muß eine Benutzerverwaltung in Runtime vorgesehen werden mit vorsichtshalber mindestens 2 Administratoren oder Benutzern mit der Berechtigung "Verwalten". Hier das Forum ist voll mit Fällen ala "Hilfe meine Benutzer sind gesperrt, was kann ich jetzt noch tun?" (wenn es bereits zu spät ist!)

Harald
 
Harald, das ist leider ein Bildbaustein und da kann man leider nicht eine Berechtigung zuordnen. Kann man nicht beim Bild, wo ich eine Berdchntigung einbauen möchte, unter "Aufgebaut" das so einstellen, dass das Eingabefenster erschein?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Siegener,

könnte man nicht einen Zwischenschritt einbauen?

Z.B. in der Art:
1. Bediener möchte von Bild A zu Bild B wechseln
-> Anmeldedialog im Bild A anzeigen
2. Bediener gibt seine Daten ein
-> aktuellen Benutzerlevel auswerten und als Wert (z.B. Integer) an den Bildbaustein übergeben
==>> das Bild B öffnen und abhängig von diesem Wert den Bildbaustein bedienbar machen

So könntest du innerhalb des Bildbausteins ohne Benutzerverwaltungsfunktionen arbeiten


Gruß, Fred
 
Hallo Fred,

wie müsste ich Schritt 1 im Wincc machen. Meine Benutzer habe ich schon eingestellt, also Name und Passwort. Wie kann ich diesen Anmelddialog oder Eingabefenster richtig anzeigen lassen. Wenn ich als Sytemfunktion "ZeigeAnmeldedialog" eingebe, erscheint zwar diese , aber ich kann dann auch jeden Mist eingeben und erhalte die Berechtigung.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke dir, das kenne ich schon.

Ich möchte zu Beginn folgendes machen: Über eine Schaltfläche melden sich die Benutzer an, d.h man klickt auf die Schaltfläche und es öffnet sich das Eingabefenster, wo man Name und Passwort eingibt. Das reicht mir. Also sowas mit LeseGuppennummer.
 
Ich gehe jetzt mal davon aus daß Du WinCC flexible benutzt.

Eigentlich wurde Dir hier schon alles genannt was Du für die Realisierung Deiner Aufgabe brauchst. Wenn Du aber keine Lust hast, den Zugriffsschutz so zu verwenden, wie von Siemens vorgesehen, dann programmiere halt Deine eigene Variante. Allerdings macht es überhaupt keinen Sinn, einen Anmeldedialog erscheinen zu lassen, wenn dann gar nicht ausgewertet wird, ob da was sinnvolles eingegeben wurde. An irgendeiner Stelle mußt Du auf irgendeine Art und Weise dem Benutzer eine Aktion ermöglichen oder nicht, abhängig davon, wie erfolgreich die Anmeldung war. Dafür kann man ganz einfach Berechtigungen an Bedienobjekte projektieren oder irgendwas anderes selber programmieren.

Entweder Du schützt direkt jedes Bedienobjekt per Berechtigung oder Animation/Bedienbarkeit oder Animation/Sichtbarkeit oder ... oder Du schützt den Aufruf des Bildes (*), in dem die zu schützenden Objekte liegen (also z.B. alle Schaltflächen, welche von irgendwoher dieses Bild aufrufen).

Willst Du mit Animation/... arbeiten, dann brauchst Du das Ergebnis der Benutzeranmeldung. Dies kannst Du erfahren mit der Systemfunktion "LeseGruppennummer", die man am Besten im Aufgabenplaner an das Ereignis "Benutzerwechsel" projektiert. Dann wird bei jedem Benutzerwechsel (Anmelden erfolgreich, Anmelden nicht erfolgreich, Abmelden) die Benutzer-Gruppennummer in eine angegebene Variable geschrieben.

Ich empfehle, Du liest mal im WinCC flexible Information System das ganze Kapitel "Arbeiten mit WinCC flexible > Benutzer verwalten" und da besonders das Thema "Zugriffsschutz projektieren"

(*) Vorsicht: das Bild darf dann nur per AktiviereVorherigesBild verlassbar sein oder es darf keinerlei AktiviereVorherigesBild-Funktion im Projekt sein. Alle globalen Bildaufruf-Funktionen müssen deaktiviert sein, solange das geschützte Bild angezeigt wird.

Harald
 
Ich gehe jetzt mal davon aus daß Du WinCC flexible benutzt.

Willst Du mit Animation/... arbeiten, dann brauchst Du das Ergebnis der Benutzeranmeldung. Dies kannst Du erfahren mit der Systemfunktion "LeseGruppennummer", die man am Besten im Aufgabenplaner an das Ereignis "Benutzerwechsel" projektiert. Dann wird bei jedem Benutzerwechsel (Anmelden erfolgreich, Anmelden nicht erfolgreich, Abmelden) die Benutzer-Gruppennummer in eine angegebene Variable geschrieben.

So habe ich es mittlerweile gemacht. Es erscheint das Eingabefenster, wo der Benutzer sich anmeldet. Danach kann man seinen Bunutzernamen sowie die Gruppennummer lesen. Mit der Gruppennummer mache ich dann in meinem Script eine Auswertung. Klappt jetzt gut, nur mit dem Eingabefenster möchte ich etwas besser optimieren. Wenn das Eingabefenster erscheint, gebe ich den Namen und das Passwort ein, wenn alles korrekt ist, erscheint der Benutername in einem EA-Feld, wenn ich irgendetwas eingebe, steht in dem EA-Feld nichts. Das Eingabefenster erscheint immer beim Aufruf des Startbildes. Bei falscher Eingabe möchte ich, dass das Eingabefenster ein zweites Mal escheint, also bis man etwas richtiges eingegeben hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Projektiere an die Variable, in welche die Gruppennummer gelesen wird, beim Ereignis "Wertänderung" den Aufruf eines Skriptes, welches die Prüfungen vornimmt und ggf. den Anmeldedialog erneut anzeigt.
EDIT: das wird leider nicht funktionieren. Wenn die Anmeldung immer wieder fehlschlägt, dann ändert sich ja die Gruppennummer nicht

PS: es wäre sehr hilfreich, wenn Du nun endlich mal antworten/aufklären würdest, welches WinCC flex Du benutzt und für welches Panel oder Runtime oder ...

Harald
 
Zuletzt bearbeitet:
Ist das echt zuviel verlangt, wenn die Anmeldung fehlschlägt, daß der Bediener SELBER nochmal eine Schaltfläche "Anmeldung" drückt? :confused:

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Man könnte aufwendig einen eigenen Anmeldedialog mit normalen EA-Feldern gestalten, mit verdeckter Eingabe des Passworts, und beim Ereignis "Eingabe abgeschlossen" ein Skript aufrufen, welches mit den Eingabewerten ein Logon versucht und prüft, ob das erfolgreich war. Doch das wäre mir zu aufwendig. Und würde ziemlich wahrscheinlich auch nicht 100%ig funktionieren.

Ich und meine Bediener kommen mit der von Siemens vorgesehenen Projektierung von Berechtigungen mit automatisch aufpoppendem Anmeldedialog bei nicht ausreichender Berechtigung prima klar.

Harald
 
Es funktioniert soweit alles, nur gibt es leider ein Problem. Mein Anmeldedialog wird immer wieder aufgerufen, wenn ich im Startbild bin, wwil so projektiert unter "Aufgebaut" das heißt ich muss mich immer wieder anmelden :confused: . Es gibt doch die Systemfunktionen "Anmelden" und "Abmelden" und ich möchte beide an je einer Schaltfläche projektieren. Damit könnte ich es vielleicht schaffen, mich einmalig anzumelden und wieder abzumelden. Nur leider weiß ich nicht wie ich beide verwenden soll.
 
Zurück
Oben