Вы можете использовать этот код, но обратите внимание, что я предполагаю, что вы ссылаетесь на пользователя, который запускает текущее приложение, если вы работаете от имени root, оно не будет работать.
Если вы запускаете его как root, просто измените NSUserName () в запросе на нужного пользователя, которого вы хотите запросить.
std::string getDomainForCurrentUser()
{
ODSession *session = [ODSession defaultSession];
ODNode *node = [ODNode nodeWithSession:session type:kODNodeTypeAuthentication error:NULL];
ODQuery *query = [ODQuery queryWithNode:node forRecordTypes:kODRecordTypeUsers attribute:kODAttributeTypeRecordName matchType:kODMatchEqualTo queryValues:NSUserName() returnAttributes:kODAttributeTypeStandardOnly maximumResults:0 error:NULL];
NSArray *records = [query resultsAllowingPartial:NO error:NULL];
for (ODRecord *record in records)
{
NSArray *recordLines = [record valuesForAttribute:kODAttributeTypePrimaryNTDomain error:nil];
if (recordLines)
{
NSString *domain = [recordLines firstObject];
std::string([domain UTF8String]);
}
}
return "";
}