S-1-5的ConvertStringSidToSid(NT AUTHORITY组)

时间:2011-01-25 15:05:14

标签: windows winapi visual-c++ windows-authentication windows-users

我有一个CSid对象,它为SYSTEM提供了一个众所周知的sid。 调用Domain()函数我可以看到域是“NT AUTHORITY”。

在MSDN中,我发现该组的SID是“S-1-5”,所以我尝试使用ConvertStringSidToSid()来获取该组的PSID,但是我收到了SID结构不正确的错误。 / p>

有没有办法获得该组的CSid?有可能吗?

非常感谢! : - )

1 个答案:

答案 0 :(得分:2)

您需要使用AllocateAndInitializeSid()函数。请参阅MSDN中的this example

PSID psid;
SID_IDENTIFIER_AUTHORITY SIDAuth = SECURITY_NT_AUTHORITY;

if(! AllocateAndInitializeSid( &SIDAuth, 2,
                               SECURITY_BUILTIN_DOMAIN_RID,
                               DOMAIN_ALIAS_RID_ADMINS,
                               0, 0, 0, 0, 0, 0,
                               &psid) ) 
{
    printf( "AllocateAndInitializeSid Error %u\n", GetLastError() );
    return FALSE;
}