2010. október 28., csütörtök

setting file permission in delphi

In order to change permissions of files in Vista or Win2008 you have to use JWSCL (JEDI Windows Security Code Library)

JwInitWellKnownSIDs;
UserToken := TJwSecurityToken.CreateTokenEffective(MAXIMUM_ALLOWED);
Owner := UserToken.GetTokenOwner;
try
  FileObject := TJwSecureFileObject.Create(FilePath);
  if not FileObject.AccessCheck(WRITE_DAC) then //Make me owner if we cant access DACL
    begin //try to become owner
      JwEnablePrivilege('SeTakeOwnershipPrivilege', pst_Enable);
      FileObject.Owner := Owner;
    end;
  DACL := FileObject.GetDACL;
  DACL.Clear;
  DACL.Add(TJwDiscretionaryAccessControlEntryAllow.Create(nil, [afObjectInheritAce,afContainerInheritAce], GENERIC_ALL, JwUsersSID, false));
  FileObject.SetDACL(DACL);
  FreeAndNil(FileObject);
finally
  FileObject.Free;
end;

Nincsenek megjegyzések:

Megjegyzés küldése