Zum Hauptinhalt springen

DrvLoginDomainUser

DrvLoginDomainUser

Aufruf beim Anmelden eines Benutzers

Details

  • Request
  • MessageId: _DrvReqLoginDomainUser Id des Ereignisses
  • ItemHeader: _DrvItemHeader Kopf des Datenpakets
  • ProtocolId: 0xF3A49E52 Id des verwendeten Protokolls
  • ProtocolVersion: 0x00040000 Version des verwendeten Protokolls
  • ItemAuthUserDomain: _DrvItemAuthUserDomain Informationsbereich des am Betriebssystem angemeldeten Benutzers
  • UserName: alpha Benutzername des angemeldeten Benutzers
  • DomainName: alpha Domain des angemeldeten Benutzers
  • ItemAuthAccessId: _DrvItemAuthAccessId Informationsbereich des Benutzers
  • AccessId: int Zugriffs-Id des Benutzers
  • Siehe: Verwandte Befehle

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();
}