![]() |
[Erledigt] JwSCL AccessCheck löst Gruppen nicht auf
Zitat:
Bezugnehmend auf ![]() ![]() 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:
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.
CheckBox1.Checked := TJwSecureGeneralObject.AccessCheck(mySecurityDescriptor, NIL, 1, TMySampleMapping);
CheckBox2.Checked := TJwSecureGeneralObject.AccessCheck(mySecurityDescriptor, NIL, 2, TMySampleMapping); 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: ![]() |
[Erledigt] JwSCL AccessCheck löst Gruppen nicht auf
Ok, Problem gelöst, ich weiß nicht recht, ob ich mich wegen der Ursache des Problems ärgern, oder wegen der einfachen Lösung freuen soll. Um mein Programm zu testen, habe ich es jedes mal in meine Testdomäne übertragen und dort immer und immer wieder getestet. Was hier nicht erwähnt wurde, ist das ich die Domänen-Gruppen in der laufenden Sitzung erstellt habe, und meinen Benutzer auch dann "erst" in die Gruppen hinzugefügt habe.
Mal wieder ist mehr Hintergrundwissen echt von Vorteil: Dank ![]() Zitat:
Und jetzt kommt nochmal der besondere Clou: Die UAC beeinflusst die Ergebnisse der Abfrage [der Gruppenmitgliedschaft] mit dem AccessCheck. Mein Benutzer ist Mitglied von "Domänen-Admins". "Domänen-Admins" hat in meiner Demo ein bestimmtest Recht. Wenn ich das Programm nun normal starte habe "ich" dieses Recht aber nicht. .exe-Datei nochmal mit rechte Maustaste "Als Administrator ausführen" gestartet --> Recht vorhanden, Alles in Ordnung. Dank an alle Leser, ich hoffe, meien Antwort konnte Euch auch helfen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 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