Adminrechte vorhanden?



  • Hallo,

    gibt es eine Funktion, die mir anzeigt, welche Rechte der User hat oder einfach ob er Admin ist oder nicht?



  • http://www.c-plusplus.net/forum/viewtopic-var-t-is-118484-and-highlight-is-.html << Dort findest du Code mit dem du feststellen kannst, ob der aktuelle User Mitglied der Gruppe "Administratoren" ist.

    Die elementaren Rechte des aktuellen Benutzers kannst du so auflisten: (siehe auch)

    void ListCurrentUserPrivileges() {
    	HANDLE hToken;
    	PTOKEN_PRIVILEGES pTokenPriv;
    	DWORD returncount = 0;
    	BOOL bRet = FALSE;
    	DWORD langid = 0;
    
    	pTokenPriv = (PTOKEN_PRIVILEGES)new CHAR[1024];
    
    	bRet = OpenProcessToken(GetCurrentProcess(),TOKEN_QUERY,&hToken);
    	assert(bRet);
    
    	bRet = GetTokenInformation(hToken, TokenPrivileges,	pTokenPriv,1024,&returncount);
    	assert(bRet);
    
    	for (UINT i=0;i< pTokenPriv->PrivilegeCount ;i++) {
    		DWORD strbufsize = 256;
    
    		PCHAR strname = new CHAR[strbufsize];
    		ZeroMemory(strname,strbufsize);
    		PCHAR strdescription = new CHAR[strbufsize];
    		ZeroMemory(strdescription,strbufsize);
    
            bRet = LookupPrivilegeName(NULL,&pTokenPriv->Privileges[i].Luid,strname,&strbufsize);
    		assert(bRet);
    
    		strbufsize = 256;
    
    		LookupPrivilegeDisplayName(NULL,strname,strdescription,&strbufsize,&langid);
    		assert(bRet);
    
    		std::cout << strname << "\n\t" << strdescription << "\n";
    
    		delete[] strname;
    		delete[] strdescription;
    	}
         delete[] pTokenPriv;
    }
    

    Zum Auflisten der Rechte, die ein Benutzer auf ein Objekt(Dateisystem,Registry,etc) hat, musst du dich mit den entsprechenden DACLS auseinandersetzen.


Anmelden zum Antworten