Einzelnen Beitrag anzeigen

generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Mitgliedschaft in Windows-Benutzergruppe feststellen

  Alt 6. Aug 2015, 16:50
So so etwas hab ich damals den Processtoken ausgelesen:

Delphi-Quellcode:
uses jwasddl

var
  TokenHandle, ReturnLength, int_size: Cardinal;
  TokenInformation : PTokenGroups;
  aTokenUser: PSIDAndAttributes;
  i: integer;

begin
  if OpenProcessToken(GetCurrentProcess(), TOKEN_READ, TokenHandle) then
  begin
    GetTokenInformation(TokenHandle, TOKENUSER, nil, 0, ReturnLength);
    int_size:=ReturnLength;
    aTokenUser:=AllocMem(int_size);
    if GetTokenInformation(TokenHandle, TOKENUSER, aTokenUser, int_size, ReturnLength) then
    begin
// hier die USER Sid
    end;
    FreeMem(aTokenUser);

    GetTokenInformation(TokenHandle, TokenGroups, nil, 0, ReturnLength);
    int_size:=ReturnLength;
    TokenInformation:=AllocMem(int_size);
    if GetTokenInformation(TokenHandle, TokenGroups, TokenInformation, int_size, ReturnLength) then
      for i:=0 to TokenInformation.GroupCount-1 do
        with TokenInformation.Groups[i] do
        begin
// hier gibt es die SID der Gruppe
        end;
    FreeMem(TokenInformation);
    CloseHandle(TokenHandle);
  end;
end;
Der Code ist von 2004 - wenn du den produktiv einsetzten willst, empfehle ich noch paar try finally blöcke.

Wenn du noch eine Idee brauchst, wie du später die Rechte dynamisch modellierst dann schau mal hier:
http://www.dynamicaccesscontrol.com/
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott

Geändert von generic ( 6. Aug 2015 um 16:53 Uhr)
  Mit Zitat antworten Zitat