Einzelnen Beitrag anzeigen

Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#1

seltsamer Fehler mit den Admin-Rechten ...

  Alt 14. Sep 2023, 17:03
Hallo

ich habe ein Problem bei der Überprüfung eines Windows-Kontos.
Dabei soll geprüft werden, ob der angemeldete Benutzer zu der Liste der Administratoren bzw.
selbst Administrator ist.
Ich verwende dazu folgenden Code:
Delphi-Quellcode:
function IsAdmin: Boolean;
const
  DOMAIN_ALIAS_RID_ADMINS = $00000220;
  SECURITY_BUILTIN_DOMAIN_RID = $00000020;
  SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5));
var
  Admin: Boolean;
  AdmGroup: PSID;
begin
  Admin := AllocateAndInitializeSid(SECURITY_NT_AUTHORITY,
  2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS,
  0, 0, 0, 0, 0, 0, AdmGroup);
  if (Admin) then
  begin
    If (not CheckTokenMembership(0, AdmGroup, Admin)) then
      Admin := False;
    FreeSid(AdmGroup);
  end;
  Result := Admin;
end;
Leider gibt es bei mir ein das Problem, das eine IF-Abfrage wohl überfordert ist:
Delphi-Quellcode:
    if not(isAdmin) then
    begin
      showmessage('1111'); // dieser Dialog wird angezeigt
      I := MessageDlg(rs_App_User_Mode,
      mtWarning,[mbYes, mbNo],0);
      if I = mrNo then
      begin
      showmessage('ooooo'); // dieser Dialog wird nicht angezeigt
        FreeBDESetup;
        Form1.Close;

        SplashForm.ProgressBar1.Position := 70;
        SplashForm.isExit := true;
        SplashForm.isMemE := true;
        SplashForm.Close;
      end;
    end;
showmessage('uuuu'); // hier wird kein Dialog angezeigt.
mach da was falsch?
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat