Функция RasSecurityDialogReceive (rasshost.h)
Функция RasSecurityDialogReceive запускает асинхронную операцию, которая получает ответ удаленного пользователя на запрос безопасности. Ответ — это входные данные, введенные пользователем в окне терминала на удаленном компьютере. Сторонние библиотеки безопасности RAS вызывают эту функцию в рамках проверки подлинности удаленного пользователя.
Чтобы вызвать эту функцию, сначала вызовите функцию LoadLibrary для загрузки Rasman.dll. Затем вызовите функцию GetProcAddress , чтобы получить точку входа RasSecurityDialogReceive библиотеки DLL.
Синтаксис
DWORD RasSecurityDialogReceive(
[in] HPORT hPort,
[in] PBYTE pBuffer,
[in] PWORD pBufferLength,
[in] DWORD Timeout,
[in] HANDLE hEvent
);
Параметры
[in] hPort
Указывает дескриптор порта, переданный сервером RAS в библиотеку DLL безопасности в вызове RasSecurityDialogBegin для этой транзакции проверки подлинности.
[in] pBuffer
Указатель на буфер получения, который был передан в библиотеку DLL безопасности в вызове RasSecurityDialogBegin . После успешного завершения асинхронной операции получения этот буфер указывает ответ от удаленного пользователя.
[in] pBufferLength
Указатель на переменную WORD . Эта переменная должна указывать размер буфера pBuffer в байтах. После завершения операции получения переменная указывает количество байтов, возвращаемых в буфере pBuffer .
[in] Timeout
Задает период времени ожидания в секундах, по истечении которого сервер RAS устанавливает для объекта события hEvent состояние сигнала.
Если это значение равно нулю, время ожидания отсутствует; то есть сервер RAS не сообщает объекту события до завершения операции получения.
[in] hEvent
Задает дескриптор объекта события, созданного функцией CreateEvent . Сервер RAS задает объекту события состояние сигнального по завершении операции получения или по истечении времени ожидания.
Возвращаемое значение
При успешном выполнении функции возвращается значение PENDING (определенное в Файле Raserror.h). Это означает, что операция получения выполняется.
При возникновении ошибки возвращаемое значение представляет собой один из кодов ошибок, определенных в Raserror.h или Winerror.h. GetLastError не предоставляет расширенные сведения об ошибке.
Комментарии
После вызова функции RasSecurityDialogSend для отправки запроса безопасности удаленному пользователю библиотека DLL безопасности должна вызвать функцию RasSecurityDialogReceive , чтобы получить ответ пользователя.
Функция RasSecurityDialogReceive является асинхронной. При возврате функции библиотека DLL безопасности должна использовать одну из функций ожидания, например WaitForSingleObject, чтобы дождаться передачи сигнала об объекте события hEvent . Сервер RAS сообщает объекту события о завершении операции получения или истечении интервала ожидания. Если операция получения выполнена успешно, буфер pBuffer содержит ответ от удаленного пользователя, а параметр pBufferLength указывает количество полученных байтов. Если удаленный пользователь отправляет больше байтов, чем помещается в буфере, сервер RAS помещает в буфер лишние байты и возвращает их в следующем вызове RasSecurityDialogReceive .
Используйте параметр Timeout , чтобы указать интервал времени ожидания. Если время ожидания истекло, сервер RAS сигнализирует объекту события, а параметр pBufferLength указывает, что были переданы нулевые байты. Кроме того, присвойте параметру Timeout значение 0 и укажите интервал времени ожидания в функции ожидания, используемой для ожидания объекта события.
Когда библиотека DLL безопасности выполняет проверку подлинности удаленного пользователя, операция подключения на удаленном компьютере переходит в состояние RASCS_Interactive приостановлено. Сообщение, отправленное RasSecurityDialogSend , отображается в виде выходных данных в окне терминала на удаленном компьютере. Ответ, полученный RasSecurityDialogReceive , представляет собой входные данные, введенные удаленным пользователем в окне терминала. Значение RASCS_Interactive определяется в перечислении RASCONNSTATE .
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | rasshost.h |
DLL | Rasman.dll |
См. также раздел
Функции администрирования сервера RAS