1
我該如何去查詢當前登錄用戶屬於哪個活動目錄組?我假設它將通過LDAP,但我已經能夠找到很多關於如何獲得這些特定信息。查找當前用戶活動目錄組C++
我已經把一些代碼,但即時通訊不能肯定什麼,我需要在下一個
// Open the access token associated with the calling process.
if (OpenProcessToken(GetCurrentProcess(),
TOKEN_QUERY,
&hToken) == FALSE)
{
dwErrorCode = GetLastError();
wprintf(L"OpenProcessToken failed. GetLastError returned: %d\n", dwErrorCode);
return HRESULT_FROM_WIN32(dwErrorCode);
}
// Retrieve the token information in a TOKEN_USER structure.
GetTokenInformation(hToken,
TokenUser, // Request for a TOKEN_USER structure.
NULL,
0,
&dwBufferSize);
pTokenUser = (PTOKEN_USER) new BYTE[dwBufferSize];
memset(pTokenUser, 0, dwBufferSize);
if (GetTokenInformation(hToken,
TokenUser,
pTokenUser,
dwBufferSize,
&dwBufferSize))
{
CloseHandle(hToken);
}
else
{
dwErrorCode = GetLastError();
wprintf(L"GetTokenInformation failed. GetLastError returned: %d\n", dwErrorCode);
return HRESULT_FROM_WIN32(dwErrorCode);
}
if (IsValidSid(pTokenUser->User.Sid) == FALSE)
{
wprintf(L"The owner SID is invalid.\n");
delete [] pTokenUser;
}
我開始拼湊一些代碼,但我不知道我需要做什麼在最後一步使用LookupAccountSid – thecaptain0220 2010-08-19 14:17:05
假設對'GetTokenInformation'的調用是成功的;你現在應該有一個指向'TOKEN_GROUPS'結構的指針,'ptokengroups'。對於每個「ptokengroups-> GroupCount」組,在'ptokengroups-> Groups [idx] .Sid'上調用'LookupAccountSid'。 – 2010-08-20 07:38:34
我看到你已經編輯了這個問題,並添加了代碼,它使用具有TokenUser而不是TokenGroups的'GetTokenInformation',儘管你最初說你想檢索當前用戶所屬的組。無論如何,給定代碼,您現在可以通過調用'LookupAccountSid'來獲取用戶的名稱和域名,這是第一次使用NULL輸出緩衝區來檢索它們的大小,然後使用有效的:'LookupAccountSid(NULL,(pTokenUser->用戶).Sid,name,&namesize,domainname,&domainnamesize,&use)','SID_NAME_USE use = SidTypeUnknown'。對於組進行類似的處理。 – 2010-08-23 07:16:23