嘗試在作為本地系統運行的服務下使用 LogonUser() 函式。已成功嘗試對用戶進行身份驗證。但是,當用戶在受保護的用戶組中時,該功能將失敗。
HANDLE hToken = NULL;
BOOL bSuccess = LogonUser(username, domain, password, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, &hToken);
if (hToken != NULL) CloseHandle(hToken);
呼叫GetLastError()導致錯誤代碼 1327。如果用戶從受保護的用戶組中洗掉,則 API 呼叫成功。
閱讀受保護用戶組的一些檔案,看起來我需要使用與 LogonUser() 不同的方法。受保護的用戶組是一個內置的 Windows 安全組,出于安全原因,它比普通域用戶更具限制性。有人知道可用于對受保護用戶組中的用戶進行身份驗證的 Windows API 嗎?
uj5u.com熱心網友回復:
實際上,此 API 確實適用于受保護的用戶。我遇到的問題是我呼叫 API 時域是一個空字串,例如“”。它是從 C# 呼叫的...
對于普通域用戶,使用域為“”呼叫 LogonUser,就可以很好地對他們進行身份驗證。但是,對于 Protected Users 組中的用戶,它會失敗,Last Error 為 1327。但是,如果我將域名放在 domain 引數中,它就可以作業。不需要 Kerberos 身份驗證或類似的東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/454170.html
上一篇:如何鏡像HBITMAP
