Zum Hauptinhalt springen

DrvLoginDomainUser

Dieses Ereignis wird bei der Anmeldung eines Benutzers ausgelöst und wenn eine erneute Abfrage des Benutzers erfolgt. Erfolgt die erneuet Abfrage aufgrund des zuvor angegebenen Timeouts, wird die bisherige AccessId im Datenpaket des Requests mit übergeben.

  • Response
  • MessageId
    • _DrvResLoginDomainUser
    • Id der Antwort
  • ItemHeader
    • _DrvItemHeader
    • Kopf des Datenpakets
  • ProtocolId
    • 0xF3A49E52
    • Id des verwendeten Protokolls
  • ProtocolVersion
    • 0x00040000
    • Version des verwendeten Protokolls
  • ItemAuthAccessId
  • AccessId
    • int
    • Zugriffs-Id des Benutzers
  • ItemTimeout
  • Timeout
    • int
    • Zeit bis zur erneuten Abfrage des Benutzers
  • ItemResult
  • Result
    • int
    • Ergebniswert

Wird in Result ein Wert ungleich 0 (_ErrOk) angegeben, wird der Benutzer abgewiesen. Er kann dann auf dem Laufwerk keine Aktionen durchführen.

Die übergebene Zugriffs-Id bestimmt die Berechtigungen des Benutzers. Die Berechtigungen werden für jede Zugriffs-Id bei den entsprechenden Ereignissen (zum Beispiel DrvGetFileEntries) im Informationsbereich der Berechtigungen (ItemFileAuthorisation) angegeben.

Beispiel:

Sollen zwei unterschiedliche Gruppen von Benutzern zugreifen, müssen zwei Zugriff-Ids definiert werden (zum Beispiel 10 und 12). Für die Zugriffs-Id 10 werden alle Berechtigungen gesetzt, während für die Zugriffs-Id 12 nur lesend auf die Daten zugegriffen werden kann. In diesem Ereignis wird ein Benutzer des Betriebssystems zu einer Zugriffs-Id zugewiesen und hat somit entweder alle Berechtigungen oder nur lesenden Zugriff.

Beispiel:

if (tDrvRequestMessageId = _DrvReqLoginDomainUser)
{
tDrvMsxWrite # MsxOpen(_MsxSocket | _MsxWrite, tSck);

tDrvMsxWrite->MsxWrite(_MsxMessage, _DrvResLoginDomainUser);
tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemHeader); // ItemHeader
tDrvMsxWrite->MsxWrite(_MsxData, 0xF3A49E52); // ProtocolId
tDrvMsxWrite->MsxWrite(_MsxData, 0x00040000); // ProtocolVersion

tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemAuthAccessId);
if (tRequestUserName = 'Administrator')
{
tDrvMsxWrite->MsxWrite(_MsxData, 10); // Access-Id for Admins
}
else
{
tDrvMsxWrite->MsxWrite(_MsxData, 12); // Access-Id for everybody else
}
tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemTimeout); // Timeout
tDrvMsxWrite->MsxWrite(_MsxData, 60000); // 60 sec.

tDrvMsxWrite->MsxWrite(_MsxItem, _DrvItemResult);
tDrvMsxWrite->MsxWrite(_MsxData, _ErrOk);
tDrvMsxWrite->MsxWrite(_MsxEnd, 0);

tDrvMsxWrite->MsxClose();
}