api - delphi, windows impersonation as user to copy a file -


i need copy file located on directory on newtwork local machine. did research , found function called windows api, when tried call copy file received access denied message. here project.

procedure tform1.btnloginlogonclick(sender: tobject); var    phtoken: thandle; begin    writelog('');    writelog('current user: ' + getcurrentuser());    // check correct login    phtoken := 0;    try    phtoken := checklogin(edit1.text, edit2.text, edit3.text); //user,password,domain    writelog('handle: ' + inttostr(phtoken));    if (phtoken > 0) begin       writelog('user login ok');        // login ok, switch acl new login context (demo purpose only)       impersonateloggedonuser(phtoken);        writelog('impersonated user: ' + getcurrentuser());      if( copyfile(pwidechar(edit4.text),('c:\cp2101.zip'),false)=false) then//copyfile('c:\a.jpg','c:\warn.jpg',true))=false             showmessage(syserrormessage(getlasterror));        // revert original login context       reverttoself;       writelog('reverted original user: ' + getcurrentuser());        tquery(phtoken, edit3.text);       tquerygroups(phtoken, edit3.text);     end else begin       writelog('user login failed');    end;           closehandle(phtoken);    end; end; 

this project: project link

the first suggestion not have permissions access network directory, or file in question. these access permissions or copy permissions (or both). check have permissions both of these.


Comments