AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte JEDI Windows Security Code Library
Thema durchsuchen
Ansicht
Themen-Optionen

JEDI Windows Security Code Library

Ein Thema von Dezipaitor · begonnen am 6. Nov 2007 · letzter Beitrag vom 15. Apr 2008
Antwort Antwort
Dezipaitor

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

Dateisicherheit lesen.

  Alt 7. Nov 2007, 22:28
Dieser Code ermittelt, welche Rechte für eine Datei möglich sind.

Delphi-Quellcode:
program ReadFileSecurity;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Dialogs,
  Controls,
  JwaWindows,
  JwsclTypes,
  JwsclExceptions,
  JwsclConstants,
  JwsclMapping,
  JwsclVersion,
  JwsclProcess,
  JwsclSid,
  JwsclAcl,
  JwsclCredentials,
  JwsclDescriptor,
  JwsclToken,
  JwsclKnownSid,
  JwsclAccounts,
  JwsclSecureObjects,
  JwsclStrings;

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;

function CheckMaximumAccessToFile(const FileName: WideString): DWORD;
var FileObject : TJwSecureFileObject;
    PrivilegeSet: TJwPrivilegeSet;
    AccessStatus: boolean;
begin
  FileObject := TJwSecureFileObject.Create(FileName);
  try
    FileObject.AccessCheck(
      MAXIMUM_ALLOWED,//DesiredAccess: TJwAccessMask;
      PrivilegeSet,//out PrivilegeSet: TJwPrivilegeSet;
      result,//out GrantedAccess: TJwAccessMask;
      AccessStatus,//out AccessStatus: boolean;
      nil//const ClientToken: TJwSecurityToken = nil);
      );
  finally
    PrivilegeSet.Free;
    FileObject.Free;
  end;
end;

var AccessMask : DWORD;
    FileName : String;
begin
  FileName := ParamStr(1);
  if Length(FileName) = 0 then
    FileName := ParamStr(0);

  writeln('Check access for '+FileName);
  try
    if CheckAccessToFile(FILE_ALL_ACCESS,FileName) then
      writeln('Full control allowed')
    else
      writeln('Full control denied');
  except
    On E : Exception do
     Writeln(E.Message);
  end;

  try
    AccessMask := CheckMaximumAccessToFile(FileName);
    writeln('Maximum access possible: ['+TJwSecurityFileMapping.MapAccessMaskToString(AccessMask)+']');
  except
    On E : Exception do
     Writeln(E.Message);
  end;

  Writeln('[Hit return]');
  readln;
end.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Antwort Antwort


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:41 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 by Thomas Breitkreuz