MCPcopy Create free account
hub / github.com/BeneficialCode/WinArk / GetUserNameAndSid

Method GetUserNameAndSid

WinSysCore/Token.cpp:31–47  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29}
30
31std::pair<std::wstring, Sid> Token::GetUserNameAndSid() const {
32 assert(_handle);
33 BYTE buffer[256];
34 DWORD len;
35 if (::GetTokenInformation(_handle.get(), TokenUser, buffer, sizeof(buffer), &len)) {
36 auto data = (TOKEN_USER*)buffer;
37 Sid sid(data->User.Sid);
38 WCHAR name[64], domain[64];
39 DWORD lname = _countof(name), ldomain = _countof(domain);
40 SID_NAME_USE use;
41 std::wstring username;
42 if (::LookupAccountSid(nullptr, sid, name, &lname, domain, &ldomain, &use))
43 username = std::wstring(domain) + L"\\" + name;
44 return { username,sid };
45 }
46 return { L"",Sid() };
47}
48
49std::wstring WinSys::Token::GetUserName() const {
50 return GetUserNameAndSid().first;

Callers 2

InitTokenMethod · 0.80

Calls 1

SidClass · 0.85

Tested by

no test coverage detected