AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [Erledigt] JwSCL AccessCheck löst Gruppen nicht auf
Thema durchsuchen
Ansicht
Themen-Optionen

[Erledigt] JwSCL AccessCheck löst Gruppen nicht auf

Ein Thema von berens · begonnen am 11. Aug 2015 · letzter Beitrag vom 12. Aug 2015
 
berens

Registriert seit: 3. Sep 2004
441 Beiträge
 
Delphi 10.4 Sydney
 
#1

[Erledigt] JwSCL AccessCheck löst Gruppen nicht auf

  Alt 11. Aug 2015, 14:07
Zitat:
TL;DR
-Nimmt man einen Benutzer in eine Gruppe auf, muss Dieser sich erst neu anmelden, damit die Änderungen wirksam werden
-Der Benutzer ist laut AccessCheck NICHT Mitglied aller generischen Administrator-Gruppen (Domänen-Admins etc.), wenn das Programm nicht mit rechter Maustaste --> Als Administrator ausführen gestartet wurde.
Hallo!

Bezugnehmend auf http://www.delphipraxis.net/186129-m...ststellen.html und http://www.delphipraxis.net/184812-w...verwenden.html bin ich immernoch dabei zu prüfen, ob der aktuell angemeldete Benutzer (also der Context, in dem mein Programm läuft) die Berechtigung für etwas hat: Wenn eine Gruppe die Berechtigung hat, in welcher der Benutzer Mitglied ist, oder eine Gruppe, welche die zuerstgenannte Gruppe enthält usw. (Verschachtelung, Vererbung(?).

Zwischenfrage: Reden wir überhaupt von Vererbung, wenn ein Benutzer Mitglied in einer Gruppe ist, bzw. eine Gruppe Mitglied in einer Gruppe? Oder hab dies garnichts mit Vererbung zu tun? (Bei Dateien und Ordnern heißt vererben ja dass sich die Rechte auf die Unterordner auswirken, Gruppenberechtigungen wirken sich ja dort IMMER auf die enthaltetenen Gruppen und Benutzer aus...)


Ich bin nun soweit, dass ich meinen TJwSecurityDescriptor habe, in dem die Rechte etc. nun korrekt gespeichert sind. Mit
Delphi-Quellcode:
  CheckBox1.Checked := TJwSecureGeneralObject.AccessCheck(mySecurityDescriptor, NIL, 1, TMySampleMapping);
  CheckBox2.Checked := TJwSecureGeneralObject.AccessCheck(mySecurityDescriptor, NIL, 2, TMySampleMapping);
kann ich nun sogar -korrekt- prüfen, ob der aktuelle Benutzer etwas darf (hier: Ob das "Recht" bzw. Bit 1 bzw. 2 in dem SecurityDescriptor gesetzt ist). Wenn ich -auf meinem lokalen PC ohne Domäne- eine Gruppe berechtige, wirkt sich das Recht korrekt auf meinen Account aus, der Mitglied in dieser Gruppe ist, auch wenn mein Account nicht explizit im SecurityDescriptor erwähnt ist. Soweit alles super.

Wenn ich das Ganze nun in einer Domäne teste und dort eine Gruppe berechtige, in der mein aktuell angemeldeter Domänenbenutzer Mitglied ist, funktioniert das aber nicht und ich erhalte immer "False" zurück.

Scheinbar wird also nicht nachgeschaut, ob der aktuelle Benutzer Mitglied in dieser Gruppe ist. Wie kann man das korrigieren?

Edit:
1) Ich verwende für Clienttoken NIL, weil ich davon ausgehe, dass AccessCheck dann einfach meinen aktuellen Benutzeraccount nimmt. Spricht was dagegen?
2) Ich verwende MapGenericMask nicht, was in diesem Beispiel verwendet wird: http://www.delphipraxis.net/837437-post14.html , da ich einfach bei DesiredAccess nur das "Bit" übergebe, dessen Zugriff ich brauche (PowerOf2, also 1-2-4-8-16-...). Kombinationen wäre später auch möglich (z.B. bei "15" (Binär: "1111") müssten die ersten vier Bits/ACEs "Erlauben" sein). Ich denke mal, MapGenericMask brauch man nur, wenn bestimmte Bedingungen eingehalten werden müssen (z.B. bei Dateien erfordert "Schreiben" unbedingt auch das Recht "Lesen"), und deshalb kann ich es weglassen, oder?

Geändert von berens (12. Aug 2015 um 09:16 Uhr)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz