0
A
回答
1
這是一個老問題,幾年前我有同樣的問題。作爲解決方法,您可以使用WaitForSingleObject。基本的想法是啓動一個線程,該線程將執行LogonUser並使主線程等待n毫秒,以便工作線程在完成時設置的句柄。
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
HANDLE athEvent;
DWORD WINAPI ThreadAuth(LPVOID);
DWORD AUTHTIMEOUT = 5000;
int main(void)
{
HANDLE hThread;
DWORD dwEvent, dwThreadID;
athEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ThreadAuth, NULL,
0, &dwThreadID);
// Wait for the thread to signal
dwEvent = WaitForSingleObject(athEvent, AUTHTIMEOUT); //5 seconds timeout
switch (dwEvent)
{
// athEvent was signaled
case WAIT_OBJECT_0:
printf("Authenticated");
break;
case WAIT_TIMEOUT:
printf("Authenticate timeout\n");
TerminateThread(hThread, 0);
break;
default:
printf("Wait error: %d\n", GetLastError());
ExitProcess(0);
}
CloseHandle(athEvent);
CloseHandle(hThread);
return 0;
}
DWORD WINAPI ThreadAuth(LPVOID lpParam)
{
UNREFERENCED_PARAMETER(lpParam);
//## Insert your logon method here
//LogonUser("LocalUser", "InvalidDomain", "Password", LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &token)
Sleep(5000); //if >= AUTHTIMEOUT then the waitforsingleobject will expire
//##
//Signal the event so WaitForSingleObject is released
SetEvent(athEvent);
return 0;
}
相關問題
- 1. 的LogonUser爲禁用的帳戶
- 2. 爲什麼LogonUser(...)不適用於域帳戶?
- 3. 與域帳戶創建證書
- 4. 認證與Gmail帳戶 - Android電子
- 5. ASP.NET MVC 5 WEB API與個人用戶帳戶認證
- 6. LogonUser()當計算機不在域上時,無法驗證用戶是否爲無效域
- 7. 使用Microsoft帳戶的C#web api認證
- 8. 與其他Facebook帳戶,Facebook的SDK做認證,IOS以下
- 9. 與Node.js一起使用所有Microsoft帳戶的認證庫
- 10. Windows Server Containers域帳戶驗證
- 11. 如何從Logonuser獲取沒有密碼的用戶帳戶的用戶令牌?
- 12. HttpClient的與客戶端證書認證
- 13. .NET Google Calendar API v3:多帳戶認證
- 14. 使用API認證quickbooks帳戶
- 15. 域帳戶vs用戶帳戶
- 16. LogonUser僅適用於我的域
- 17. 驗證電子郵件與帳戶谷歌,帳戶Facebook的
- 18. 服務帳戶認證如何與Ruby Google API一起使用?
- 19. 從JIRA帳戶獲取信息與認證
- 20. 非域用戶的Active Directory認證
- 21. Win32 API LogonUser離線訪問本地帳戶
- 22. tweepy壞的認證數據
- 23. 跨域認證
- 24. 與客戶端認證
- 25. 應用|受限Google帳戶認證|列出的谷歌帳戶並非全部|
- 26. Win32 LogonUser不返回「域管理員」組
- 27. 在其他網站上認證用戶帳戶的策略?
- 28. 關於用戶名和子域認證
- 29. 確認用戶帳戶
- 30. move_uploaded_file()使用臨時主機帳戶域