RasSecurityDialogReceive-Funktion (rasshost.h)
Die RasSecurityDialogReceive-Funktion startet einen asynchronen Vorgang, der die Antwort eines Remotebenutzers auf eine Sicherheitsanforderung empfängt. Die Antwort ist die Eingabe, die der Benutzer in einem Terminalfenster auf dem Remotecomputer eingegeben hat. Eine RAS-Sicherheits-DLL eines Drittanbieters ruft diese Funktion im Rahmen der Authentifizierung des Remotebenutzers auf.
Um diese Funktion aufzurufen, rufen Sie zuerst die LoadLibrary-Funktion auf, um Rasman.dll zu laden. Rufen Sie dann die GetProcAddress-Funktion auf, um den RasSecurityDialogReceive-Einstiegspunkt der DLL abzurufen.
Syntax
DWORD RasSecurityDialogReceive(
[in] HPORT hPort,
[in] PBYTE pBuffer,
[in] PWORD pBufferLength,
[in] DWORD Timeout,
[in] HANDLE hEvent
);
Parameter
[in] hPort
Gibt das Porthandle an, das der RAS-Server im RasSecurityDialogBegin-Aufruf für diese Authentifizierungstransaktion an die Sicherheits-DLL übergeben hat.
[in] pBuffer
Zeiger auf den Empfangspuffer, der im RasSecurityDialogBegin-Aufruf an die Sicherheits-DLL übergeben wurde. Wenn der asynchrone Empfangsvorgang erfolgreich abgeschlossen wurde, gibt dieser Puffer die Antwort des Remotebenutzers an.
[in] pBufferLength
Zeiger auf eine WORD-Variable . Diese Variable muss die Größe des pBuffer-Puffers in Bytes angeben. Wenn der Empfangsvorgang abgeschlossen ist, gibt die Variable die Anzahl der bytes an, die im pBuffer-Puffer zurückgegeben werden.
[in] Timeout
Gibt einen Timeoutzeitraum in Sekunden an, nach dem der RAS-Server das hEvent-Ereignisobjekt auf den signalierten Zustand festlegt.
Wenn dieser Wert null ist, gibt es keinen Timeoutzeitraum. Das heißt, der RAS-Server signalisiert das Ereignisobjekt erst, wenn der Empfangsvorgang abgeschlossen wurde.
[in] hEvent
Gibt das Handle eines Ereignisobjekts an, das von der CreateEvent-Funktion erstellt wurde. Der RAS-Server legt das Ereignisobjekt auf den signalierten Zustand fest, wenn der Empfangsvorgang abgeschlossen wurde oder wenn der Timeoutzeitraum abgelaufen ist.
Rückgabewert
Wenn die Funktion erfolgreich ist, lautet der Rückgabewert PENDING (definiert in Raserror.h). Dies gibt an, dass der Empfangsvorgang ausgeführt wird.
Wenn ein Fehler auftritt, ist der Rückgabewert einer der in Raserror.h oder Winerror.h definierten Fehlercodes. GetLastError stellt keine erweiterten Fehlerinformationen bereit.
Hinweise
Nachdem die RasSecurityDialogSend-Funktion aufgerufen wurde , um eine Sicherheitsanforderung an den Remotebenutzer zu senden, muss die Sicherheits-DLL die RasSecurityDialogReceive-Funktion aufrufen, um die Antwort des Benutzers zu erhalten.
Die RasSecurityDialogReceive-Funktion ist asynchron. Wenn die Funktion zurückgegeben wird, muss die Sicherheits-DLL eine der Wartefunktionen wie WaitForSingleObject verwenden, um auf die Signalisierung des hEvent-Ereignisobjekts zu warten. Der RAS-Server signalisiert dem Ereignisobjekt, wenn der Empfangsvorgang abgeschlossen wurde oder das Timeoutintervall abgelaufen ist. Wenn der Empfangsvorgang erfolgreich ist, enthält der pBuffer-Puffer die Antwort des Remotebenutzers, und der Parameter pBufferLength gibt die Anzahl der empfangenen Bytes an. Wenn der Remotebenutzer mehr Bytes sendet, als in den Puffer passen, puffert der RAS-Server die überschüssigen Bytes und gibt sie im nächsten RasSecurityDialogReceive-Aufruf zurück.
Verwenden Sie den Timeout-Parameter , um ein Timeoutintervall anzugeben. Wenn das Timeout verstrichen ist, signalisiert der RAS-Server das Ereignisobjekt, und der Parameter pBufferLength gibt an, dass null Bytes übertragen wurden. Alternativ können Sie Timeout auf null festlegen und ein Timeoutintervall in der Wartefunktion angeben, die zum Warten auf das Ereignisobjekt verwendet wird.
Wenn eine Sicherheits-DLL einen Remotebenutzer authentifiziert, wechselt der Verbindungsvorgang auf dem Remotecomputer in einen RASCS_Interactive angehaltenen Zustand. Die von RasSecurityDialogSend gesendete Nachricht wird als Ausgabe in einem Terminalfenster auf dem Remotecomputer angezeigt. Die von RasSecurityDialogReceive empfangene Antwort ist die Eingabe, die der Remotebenutzer im Terminalfenster eingibt. Der RASCS_Interactive Wert wird in der RASCONNSTATE-Enumeration definiert.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | rasshost.h |
DLL | Rasman.dll |
Weitere Informationen
RAS-Server-Verwaltungsfunktionen