Поделиться через


Функция RasSecurityDialogReceive (rasshost.h)

Функция RasSecurityDialogReceive запускает асинхронную операцию, которая получает ответ удаленного пользователя на запрос безопасности. Ответ — это входные данные, введенные пользователем в окне терминала на удаленном компьютере. Сторонние библиотеки безопасности RAS вызывают эту функцию в рамках проверки подлинности удаленного пользователя.

Чтобы вызвать эту функцию, сначала вызовите функцию LoadLibrary для загрузки Rasman.dll. Затем вызовите функцию GetProcAddress , чтобы получить точку входа RasSecurityDialogReceive библиотеки DLL.

Примечание Windows Server 2008, Windows Server 2003, Windows 2000 Server и Windows NT Server 4.0 в настоящее время обеспечивают поддержку узла безопасности RAS только для последовательных устройств. Другие типы подключений, такие как подключения к цифровой сети интегрированных служб (ISDN) или vpn-подключения, не поддерживаются.
 

Синтаксис

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

См. также раздел

CreateEvent

Функция GetProcAddress

LoadLibrary

Функции администрирования сервера RAS

RASCONNSTATE

RasSecurityDialogSend

Общие сведения о службе удаленного доступа (RAS)

WaitForSingleObject