AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wer hat welche Berechtigungen in einem Verzeichnis
Thema durchsuchen
Ansicht
Themen-Optionen

Wer hat welche Berechtigungen in einem Verzeichnis

Ein Thema von Luckie · begonnen am 28. Feb 2004 · letzter Beitrag vom 8. Nov 2005
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#31

Re: Wer hat welche Berechtigungen in einem Verzeichnis

  Alt 25. Sep 2005, 12:36
Hai Nico,

eine Frage habe ich noch

Ich habe in deiner Funktion des Result-Type auf Integer geändert und im Code dann geschrieben:
Delphi-Quellcode:
begin
  Result := -1;
.
.
  if AccessCheck(SecurityDescriptor, ClientToken, AccessMask,
     GenericFileMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess,
     AccessStatus) then
  begin
    // Result := AccessStatus;
    Result := GetLastError
  end;
.
.
Dadurch kann ich etwas "leichter" die Fehler auflösen:
Delphi-Quellcode:
procedure TForm1.btn_Button1Click(Sender: TObject);
var
  pfad: string;
begin
  pfad := edt_Edit1.Text;
  case CheckAccessToFile(GENERIC_WRITE, pfad) of
    -1:
    begin
      ShowMessage('Fehler beim Ausführen')
    end;
    NO_ERROR:
    begin
      ShowMessage('Alles Okay')
    end;
    ERROR_ACCESS_DENIED:
    begin
      ShowMessage('Zugriff verweigert')
    end;
    ERROR_LOGON_FAILURE:
    begin
      ShowMessage('Fehler bei der Anmeldung')
    end;
  end;
end;
Ist das Okay so oder ist da noch eine Falle in meinem Code?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#32

Re: Wer hat welche Berechtigungen in einem Verzeichnis

  Alt 25. Sep 2005, 12:46
Jupp, der Benutzer könnte das Verzeichnis zwar auswähen aber nicht die Sicherheitsbeschreibungen lesen können (wenn ich noch länger darüber nachdenke fällt mir bestimmt noch mehr ein *g*).
Ich würde es so lassen (Boolean).
Was spricht gegen:
Delphi-Quellcode:
if not CheckAccessToFile(...) then
  case GetLastError of
    ERROR_TOO_STUPID,
    ERROR_GO_WINDOWS,
    ERROR_DROP_DEAD:
  //...
  end;
ps: wo ist dein else ?-)
pps: dein Code kann ohnehin nicht sicher funktionieren (zumindest nicht so wie du es erwartest), da im Erfolgsfalle 'LastError' nicht gesetzt wird...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#33

Re: Wer hat welche Berechtigungen in einem Verzeichnis

  Alt 25. Sep 2005, 12:58
Zitat von NicoDE:
...
Ich würde es so lassen (Boolean).
Was spricht gegen:
Jup, hast recht.
Zitat:
ps: wo ist dein else
Else war ausverkauft
Zitat:
.. da im Erfolgsfalle 'LastError' nicht gesetzt wird...
Ups, da bei meinen Testläufen LastError im Erfolgsfall immer 0 war hatt ich mich darauf verlassen.

Aber wie schon gesagt: Ich mache so wie von Dir vorgeschlagen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#34

Re: Wer hat welche Berechtigungen in einem Verzeichnis

  Alt 7. Nov 2005, 14:32
Hi,

nochmal zum Test von Netzlaufwerken. Ich habe eine Freigabe unter XP (Zugriff: \\rechner\freigabe\ Berechtigungen: Jeder->Lesen) gemacht und die mit CheckAccessToFile() und FILE_GENERIC_WRITE getestet. Jetzt gibt mir die Funktion aber True zurück, wie kann das sein?

Gruß
Matthias
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#35

Re: Wer hat welche Berechtigungen in einem Verzeichnis

  Alt 7. Nov 2005, 15:32
Zitat von Brainshock:
Ich habe eine Freigabe unter XP (Zugriff: \\rechner\freigabe\ Berechtigungen: Jeder->Lesen) gemacht und die mit CheckAccessToFile() und FILE_GENERIC_WRITE getestet. Jetzt gibt mir die Funktion aber True zurück, wie kann das sein?
Testest Du die Freigabe auf dem selben Rechner? Welche Parameter werden übergeben?
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#36

Re: Wer hat welche Berechtigungen in einem Verzeichnis

  Alt 7. Nov 2005, 16:54
1. Freigabe ist auf einem Nachbarrechner (\\eg01\testfreigabe) mit Windows XP.
2. Der Aufruf ist wie gehabt:

Delphi-Quellcode:
 
ShowMessage(BoolToStr(CheckAccessToFile(FILE_GENERIC_WRITE, '\\eg01\testfreigabe'), True) + ': ' + SysErrorMessage(GetLastError));
Matthias
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#37

Re: Wer hat welche Berechtigungen in einem Verzeichnis

  Alt 8. Nov 2005, 08:53
Wenn ich die Funktion mit einer Windows 2000 Freigabe teste (Berechtigung: Nur lesen) fliegt er schon bei GetFileSecurityW() mit "Zugriff verweigert" raus, was wahrscheinlich auch richtig so ist.

Nur warum liefert mir Windows XP falsche Werte ?
Matthias
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#38

Re: Wer hat welche Berechtigungen in einem Verzeichnis

  Alt 8. Nov 2005, 09:17
Wie ist der Rückgabewert wenn Du GENERIC_WRITE verwendest?
(gibt es sonst irgendwelchen Besonderheiten? Domäne vs Arbeitsgruppe, admintrativer Account, usw)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Wer hat welche Berechtigungen in einem Verzeichnis

  Alt 8. Nov 2005, 11:44
Was für ein XP? Home oder Professinal?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Brainshock

Registriert seit: 26. Nov 2004
Ort: 37345
214 Beiträge
 
Delphi 7 Professional
 
#40

Re: Wer hat welche Berechtigungen in einem Verzeichnis

  Alt 8. Nov 2005, 12:56
@NicoDE:

Zitat:
Wie ist der Rückgabewert wenn Du GENERIC_WRITE verwendest?
Die Rückgabe ist "True: Der Vorgang wurde erfolgreich beendet".
Werte ich jetzt noch die Rückgabe GrantedAccess von AccessCheck() in CheckAccessToFile() aus, bekomme ich für GENERIC_WRITE mein False. Das sollte es doch sein oder ?

Zitat:
(gibt es sonst irgendwelchen Besonderheiten? Domäne vs Arbeitsgruppe, admintrativer Account, usw)
- Arbeitsgruppe
- Admin-Account (Administrator)

@Luckie
Zitat:
Was für ein XP? Home oder Professinal?
Ich benutze Windows XP Pro.
Matthias
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


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 05:01 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