Access Control Plug-in - Informationen für Programmierer

Einige Implementierungsregeln gelten für alle Access Control Plugin-Instanzen. Dieses Kapitel deckt diese allgemeinen Implementierungsschritte ab.

Erstellen einer neuen Access Control Plug-in-Instanz zur Laufzeit

Das Access Control Plug-in wird von jedem WinCC OA API basiertem Manager (Inklusive nativer WinCC OA Manager wie das UI oder den CTRL Manager) als Shared Library geladen. Das erfordert eine externe Deklaration aller verfügbaren Methoden. Um diesen Mehraufwand zu verhindern, existiert eine Plugin Factory. Für eine benutzerdefinierte Access Control Plugin-Klasse muss eine neue Access Control Plugin-Klasse mittels der Factory-Funktionalität instanziert werden (typischerweise ausgefüllt mit dem Namen welcher mittels newWCCILAccessCtrlPlugin.cmd angegeben wurde):

// defines the factory function for this Access Control Plug-in

SECURITY_PLUGIN(<Name of your plug-in>)

e.g. SECURITY_PLUGIN(myPlugin)

Wenn Sie Ihr Plug-in generieren, siehe Erstellen eines Benutzerdefinierten Plugins, enthält das Plug-in die Factory-Funktion.

Als Beispiel kann der Code des Demo Access Control Plug-ins newWCCOAAccessControlPlugin.cmd innerhalb des Verzeichnisses wincc_oa_path/api herangezogen werden.

Abbildung 1. api-Verzeichnis und newWCCOAAccessControlPlugin.cmd

Debug-Flag für die Log-Ausgabe

Um die Ausgabe der Debug-Texte zu steuern, kann das Debug-Flag für das Access Control Plug-in verwendet werden.

Standardmäßig wird das Flag "ACCPLUGIN" verwendet, welches als Kommandozeilen Argument für jeden für Sie relevanten Manager angegeben werden kann, z.B.: WCCOAui –m gedi –dbg “ACCPLUGIN” .

Um den Namen des Debug-Flags Ihres Access Control Plug-ins zu ändern, muss die entsprechende Zeile innerhalb des Konstruktors des benutzerdefinierten Access Control Plug-ins angepasst werden:

//Creates a debug flag with the given name.

dbgFlag = Resources::registerDbgFlag("ACCPLUGIN_NEW");