Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TSecurityAttributes für Named Pipes (https://www.delphipraxis.net/158668-tsecurityattributes-fuer-named-pipes.html)

Bummi 25. Feb 2011 18:56

TSecurityAttributes für Named Pipes
 
Ich bräuchte eine schlanke einfach Implemtierung für das Setzen der TSecurityAttributes für Named Pipes.
Vorzugsweise ohne den Jwa Overhead.
Gibt es eine einfach Möglichkeit per CreateWellKnownSid o.ä. dort hin zu kommen?

Dezipaitor 26. Feb 2011 13:25

AW: TSecurityAttributes für Named Pipes
 
Nein, einfach ist das nicht. Der "Jwa Overhead" lässt sich aber auch nicht vermeiden (obwohl dieser Minimal ist und du mehr Overhead durch jede neue Delphiversion bekommst), außer du willst alle Strukturen selbst übersetzen, denn einfach rauskopieren aus JWA ohne Quellenangabe verstößt gegen die Lizenz.

Aber schau mal bei Luckie: http://www.michael-puff.de/Programmierung
Er könnte schon vorgekauten Code haben.
Es gibt aber auch andere Bibliotheken, die als Minimalwrapper zur WinAPI dienen. Ka, wie der Name war.

Bummi 26. Feb 2011 23:42

AW: TSecurityAttributes für Named Pipes
 
unerfreulich, trotzdem vielen Dank....

Bummi 27. Feb 2011 11:25

AW: TSecurityAttributes für Named Pipes
 
suche immer noch :-(
ich habe das ganze auch mal unter
http://www.delphi-forum.de/viewtopic...a6be3c4202a5b1
als CROSSPOST eingestellt.

Bummi 28. Feb 2011 13:44

AW: TSecurityAttributes für Named Pipes
 
So, ich habe es jetz doch selbst gelöst...falls jemand mal ein ähnliches Problem hat...
es kann der Komponetente eine Templatedatei mit den gewünschten Zugriffsrechten zugewiesen werden.
Die entscheidenenen Codeabschnitte:

Delphi-Quellcode:
private
     FACL: PACL;
     FACLFileName: String;
     FpFileSD:     PSecurityDescriptor;





procedure TPipeServer.GenACLFromFile;
//20110228 by Thomas Wassermann
var
  res : Boolean;
  len : Cardinal;
  fDaclPresent,fDaclDefaulted:Bool;
begin
  FACL := nil;
  if Assigned(FpFileSD) then DoHeapFree(FpFileSD);
  if FileExists(FACLFileName) then
    begin
    res := GetFileSecurity(PChar(FACLFileName),DACL_SECURITY_INFORMATION,FpFileSD,0,len);
    if res or (GetLastError() = ERROR_INSUFFICIENT_BUFFER) then
       begin
         FpFileSD := DoHeapalloc(len);
         GetFileSecurity(PChar(FACLFileName),DACL_SECURITY_INFORMATION,FpFileSD,len,len);
         GetSecurityDescriptorDacl(FpFileSD,fDaclPresent,FACL,fDaclDefaulted);
       end;
    end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 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