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
- TwinCAT XAE ist installiert und gestartet.
- Eine DTE-Verbindung ist aktiv.
- Eine Benutzer-Datenbank als
.tcudb-Datei ist vorhanden. SelectUserDBwird vor dem Öffnen eines Projekts aufgerufen, wenn eine benutzerdefinierte Datenbank verwendet werden soll.
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)"
![]() |
|
