hes*_*ini 4 c++ windows winapi active-directory
当我的软件运行时,我的软件大多数都是 Windows 用户的登录类型。通过域或本地登录。我需要获取 Windows 中用户的登录类型。
我认为这些 API 可以帮助我:
GetComputerNameEx( ComputerNameDnsDomain, domainNameBuf, &bufSize );
Run Code Online (Sandbox Code Playgroud)
或者
GetUserName(sBuffer.GetBuffer(dwUsernameSize), &dwUsernameSize);
Run Code Online (Sandbox Code Playgroud)
或者
LookupAccountName(NULL,
sUsername,
(PSID)pSid,
&dwSidSize,
sBuffer.GetBuffer(dwDomainNameSize),
&dwDomainNameSize,
(PSID_NAME_USE)&sidType);
Run Code Online (Sandbox Code Playgroud)
或者
nStatus = NetWkstaUserGetInfo(NULL,dwLevel,(LPBYTE *)&pBuf);
Run Code Online (Sandbox Code Playgroud)
使用LsaQueryInformationPolicywithPolicyDnsDomainInformation检索计算机主域的 SID。如果Sid成员是NULL,则计算机未加入域,您可以假设用户已登录到本地帐户。
否则,使用GetTokenInformationwithTokenUser检索当前用户的 SID,然后使用GetWindowsAccountDomainSid提取用户 SID 的域部分。
使用 比较主域的 SID 与用户的域 SID EqualSid。如果SID相等,则用户登录到域帐户;否则,用户将登录到本地帐户。
| 归档时间: |
|
| 查看次数: |
2883 次 |
| 最近记录: |