AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zurgiffsrechte bestimmen bzw. testen

Ein Thema von LokutusvB · begonnen am 16. Okt 2008 · letzter Beitrag vom 15. Nov 2010
Antwort Antwort
Seite 1 von 2  1 2      
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#1

Zurgiffsrechte bestimmen bzw. testen

  Alt 16. Okt 2008, 15:48
Hallo Leute,

wenn man nach Zugriffsrechten für Ordner bzw. Verzeichnisse googelt, bekommt man fast nur ellenlange Funktionen als Ergebnis geliefert. TSearchRec, FindFirst und co. durchsucht ja nur Ordnerstrukturen ja nach dem, wie ich es definiere. Oder gibt es hier schon eine Möglichkeit, wie ich die Rechte mit Hilfe von FindNext/FindFirst auslesen kann?

Was ist denn die kürzeste und schnellste Möglichkeit zu testen, ob ein Nutzer Zugriff auf einen Ordner hat (Lese- und /oder Schreibzugriff ist dabei egal)?

Ist es schneller, wenn ich versuche, etwas in den Ordner zu kopieren und wieder zu löschen oder gibt es hierfür eine kleine schnelle Funktion?
MFG
LokutusvB
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Zurgiffsrechte bestimmen bzw. testen

  Alt 16. Okt 2008, 16:10
Du könntest die Zugriffsrechte auslesen: http://www.michael-puff.de/Programmi...ileAccess.html

Oder eben versuchen eine Datei dort zu erstellen und den fehlercode dann auswerten. Wobei das auslesen der Zugriffsrechte eleganter ist.
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie (15. Nov 2010 um 13:25 Uhr) Grund: Link korrigiert
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#3

Re: Zurgiffsrechte bestimmen bzw. testen

  Alt 16. Okt 2008, 16:26
Danke für den Link.
So etwas ähnliches habe ich auch schon bei meiner Suche in einem Beitrag gefunden, wo es darum ging, Zugriffsrechte zu ändern. Eventuell kann ich das ganze ja noch ein wenig kürzen.
MFG
LokutusvB
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Zurgiffsrechte bestimmen bzw. testen

  Alt 17. Okt 2008, 09:14
Zitat von LokutusvB:
Eventuell kann ich das ganze ja noch ein wenig kürzen.
Das glaube ich kaum. Oder warum denkst du, dass Nico dort unnötigen Code rein geschrieben haben sollte? Und warum willst du ihn überhaupt kürzer haben? Was macht das für einen Unterschied, ob du nun 10 oder 50 Zeilen Code kopierst und aufrufst?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#5

Re: Zurgiffsrechte bestimmen bzw. testen

  Alt 17. Okt 2008, 10:56
So kürzen?

http://blog.delphi-jedi.net/2007/10/21/why-jwscl/
Delphi-Quellcode:
function CheckAccessToFile(
  DesiredAccess: DWORD; const FileName: WideString): Boolean;
var FileObject : TJwSecureFileObject;
begin
  FileObject := TJwSecureFileObject.Create(FileName);
  try
    result := FileObject.AccessCheck(DesiredAccess);
  finally
    FileObject.Free;
  end;
end;
Das Erstellen einer Datei hat Unterschiede zum Auslesen der Zugriffsrechte:
1. Das Erstellen der Datei kann eine Überwachungslog (Audit) generieren. AccessCheck selbst macht das nicht. Es gibt extra AccessCheck Funktionen dafür.
2. Eine lokale Überprüfen der Zugriffsrechte auf einem entfernten System kann ein unterschiedliches Ergebnis ergeben, weil der Zugriff nur auf dem entfernten Rechner geschieht.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#6

Re: Zurgiffsrechte bestimmen bzw. testen

  Alt 17. Okt 2008, 11:08
@Luckie: Kennst du Gründe warum ImpersonateSelf verwendet wurde, abseits meinem Grund, dass der Code threadsicher(er) ist?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#7

Re: Zurgiffsrechte bestimmen bzw. testen

  Alt 17. Okt 2008, 11:25
An Luckie:
Die Idee des Kürzens hatte ich, bevor ich den Quelltext genauer gelesen hatte. Es hätte ja gut sein können, das zusätzliche Informationen ausgelesen werde, die ich nicht benötige. Denn was bei meinem Programm zählt, ist die Zeit, da das ganze über das Netzwerk bzw. Internet läuft und so schon genug gebremst wird.

An Dezipaitor:
Ein sehr interessanter Link. das werde ich zumindest noch ausprobieren. CheckAccessToFile funktioniert so weit sehr gut , ohne einen spürbaren zusätzlichen Zeitfaktor beim Durchsuchen der Laufwerke und Ordner.

Danke für die Hilfe
MFG
LokutusvB
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#8

Re: Zurgiffsrechte bestimmen bzw. testen

  Alt 17. Okt 2008, 12:42
Der obige OOP Code wird durch ständiges Erstellen und Zerstören von Objekten und einigen internen Überprüfungen (zur Sicherheit), sowie der aufruf von virtuellen Methoden (ist langsamer) natürlich langsamer ausgeführt als der reine WinAPI Code. JWSCL enthält aber auch Klassenmethoden, die es erlauben schnell die Sicherheitsdaten einer Datei zu lesen und mit AccessCheck (auch eine Methode) zu überprüfen. Da wird dann eben kein Objekt für jede Datei erstellt. Einige interne Sachen sind dann doch noch dabei. Die Klasse ist TJwSecureGeneralObject
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Zurgiffsrechte bestimmen bzw. testen

  Alt 17. Okt 2008, 12:50
Zitat von Dezipaitor:
@Luckie: Kennst du Gründe warum ImpersonateSelf verwendet wurde, abseits meinem Grund, dass der Code threadsicher(er) ist?
Da müsstest du dich mal an Nico persönlich wenden. Der Code ist von ihm (Steht ja auch drunter).
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Zurgiffsrechte bestimmen bzw. testen

  Alt 17. Okt 2008, 12:58
Zitat von Dezipaitor:
Kennst du Gründe warum ImpersonateSelf verwendet wurde, [...]
Es handelt sich in erster Linie um eine Vereinfachung (damit man nur noch OpenThreadToken braucht), um an das Token zu gelangen (sonst müsste man erstmal prüfen ob der Thread ein eigenes Token hat und alternativ das Token des Prozesses verwenden.

Wenn ich mich recht erinnere, dann handelt es sich um die (Re-)Implementierung einer API, die nicht in allen Versionen von Windows NT zur Verfügung steht...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz