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.