Benutzerverwaltung und Sicherheit

Das ITcUserManagement-Interface ermöglicht die Auswahl einer Benutzerdatenbank, das Anmelden eines Benutzers und das Abfragen des aktuell aktiven Benutzers. Das Interface wird über dte.GetObject("TcUserManagement") bezogen und steht auch dann zur Verfügung, bevor ein TwinCAT-Projekt geöffnet ist.

ITcUserManagement2 erweitert das Basis-Interface um SelectUserDB. Die Datenbankauswahl muss zwingend erfolgen, bevor ein Projekt geöffnet wird. Nach dem Öffnen kann der Benutzer gewechselt werden, die Datenbank ist dann jedoch festgesetzt. LoginUser wirft eine COMException, wenn der Benutzername nicht gefunden wird oder das Passwort falsch ist.

Voraussetzungen

C# Beispiel

Das Interface wird per Cast auf ITcUserManagement2 umgewandelt. Exception-Handling für LoginUser ist empfehlenswert.

// Get ITcUserManagement2 via DTE
ITcUserManagement2 userMgr = (ITcUserManagement2)dte.GetObject("TcUserManagement");

// Select user database (must be done before opening a project)
userMgr.SelectUserDB(@"C:\TwinCAT\3.1\CustomConfig\UserDBs\MyUserDb.tcudb");

// Log in user
userMgr.LoginUser("Administrator", "MyPassword");

// Query active user
string activeUser = userMgr.ActiveUser;
Console.WriteLine("Aktiver Benutzer: " + activeUser);

PowerShell Beispiel

In PowerShell wird das Interface über Late Binding bezogen; ein expliziter Cast ist nicht erforderlich.

# Get UserManagement interface via DTE
$userMgr = $dte.GetObject("TcUserManagement")

# Check active user (before login)
Write-Host "Aktueller Benutzer: $($userMgr.ActiveUser)"

# Log in
$userMgr.LoginUser("Administrator", "MyPassword")
Write-Host "Eingeloggt als: $($userMgr.ActiveUser)"
Benutzerverwaltung und Sicherheit 1:

SelectUserDB muss vor dem Öffnen eines TwinCAT-Projekts aufgerufen werden. Nach dem Öffnen des Projekts ist eine Änderung der Datenbankauswahl nicht mehr möglich.