DrvLoginDomainUser
DrvLoginDomainUser
Aufruf beim Anmelden eines Benutzers
Details
- Request
MessageId:_DrvReqLoginDomainUserId des EreignissesItemHeader:_DrvItemHeaderKopf des DatenpaketsProtocolId:0xF3A49E52Id des verwendeten ProtokollsProtocolVersion:0x00040000Version des verwendeten ProtokollsItemAuthUserDomain:_DrvItemAuthUserDomainInformationsbereich des am Betriebssystem angemeldeten BenutzersUserName:alphaBenutzername des angemeldeten BenutzersDomainName:alphaDomain des angemeldeten BenutzersItemAuthAccessId:_DrvItemAuthAccessIdInformationsbereich des BenutzersAccessId:intZugriffs-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
ProtocolId0xF3A49E52- Id des verwendeten Protokolls
ProtocolVersion0x00040000- Version des verwendeten Protokolls
ItemAuthAccessId_DrvItemAuthAccessId- Informationsbereich des Benutzers
AccessIdint- Zugriffs-Id des Benutzers
ItemTimeout_DrvItemTimeout- Informationsbereich für den Timeout
Timeoutint- Zeit bis zur erneuten Abfrage des Benutzers
ItemResult_DrvItemResult- Ergebnis-Bereich
Resultint- 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();
}