Find out if user is an admin

Post new topic   Reply to topic

View previous topic View next topic Go down

Find out if user is an admin

Post  ~Fleck on Mon Jun 29, 2009 5:36 am

find out if user is admin
Code:

typedef BOOL( __stdcall *CTM ) ( HANDLE, PSID, PBOOL );
CTM CheckTokenMembership;

int IsUserAnAdmin( );

int main()
{
    if( IsUserAnAdmin( ) == 1 ) {
        printf("admin: true\n");
    } else {
        printf("admin: false\n"); 
    }
    getchar( );
   
    return( 0 );
}

int IsUserAnAdmin()
{
    int bToken, bCheck;
    PSID pAdmin;
    SID_IDENTIFIER_AUTHORITY sAuthority = SECURITY_NT_AUTHORITY;
   
    HMODULE hAdvapi32 = LoadLibrary( "advapi32" );
    if( hAdvapi32 != NULL )
    {
        CheckTokenMembership = (CTM) GetProcAddress( hAdvapi32, "CheckTokenMembership" ); 
        if( CheckTokenMembership != NULL )
        {
            bToken = AllocateAndInitializeSid( &sAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &pAdmin );
            if( bToken == 1 )
            {
                bCheck = CheckTokenMembership( NULL, pAdmin, &bToken );
                if( bCheck == 0 ) {
                    bToken = 1;
                }
            }
        }
    }
    return( bToken );
}

~Fleck
Moderator
Moderator

Posts: 274
Activity: -258
Reputation: 8
Join date: 2009-06-28
Age: 16
Location: 127.0.0.1

Back to top Go down

View previous topic View next topic Back to top


Post new topic   Reply to topic
Permissions of this forum:
You cannot reply to topics in this forum