2009-10-14 3 views
1

Функция LogonUser http://msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx возвращает дескриптор, который вы можете использовать для олицетворения пользователя, когда вы закончите использовать его, вы вызываете CloseHandle, чтобы закрыть его. Мой вопрос: вам нужно закрыть дескриптор, если попытка входа в систему не выполнена (т. Е. Неправильное имя пользователя или пароль)?Закрыть LogonUser Handle, если Failed Logon?

ответ

1

LogonUser возвращает ноль, если он терпит неудачу, и никакой дескриптор не создается. Хотя, если вы назовете CloseHandle, CloseHandle должен просто вернуть ERROR_INVALID_HANDLE.

+0

спасибо, да, я получал ERROR_INVALID_HANDLE при получении последней ошибки, чтобы проверить, почему пользователь не смог войти в систему, и подозревал, что это произошло потому, что я закрывал недействительный дескриптор. Благодарю. –

0

Адрес, на который указывает phToken, является «выходным» параметром, поэтому, если LogonUser() не работает, вы не должны рассчитывать на его хранение любого разумного значения. В таком случае вам не нужно вызывать CloseHandle().

Смежные вопросы