[Delphi] 암호걸린 네트워크 공유 폴더에 접근하기.
가끔씩... 네트워크 드라이브 연결을 하지 않고 단지 UNC경로 만으로 공유된 폴더에
접근해야 할 경우가 있습니다. 예를 들어 다음과 같이 말이죠...
뭐 시작 -> 실행을 누르고 UNC를 입력한 다음 암호 저장을 해 두면 됩니다만...
공유암호를 키 체인에 저장해두는 건 그다지 바람직한 방법이 아닙니다.
다음 프로시저는 이 경우에 써먹을 수 있습니다.
간단한 코드니 설명은 생략하고, 참조 파라미터로 넘겨주는 ConnStr 에 연결을 위한
문자열을 반환하도록 해 두었으니 잘 사용하세요.
접근해야 할 경우가 있습니다. 예를 들어 다음과 같이 말이죠...
FileStream := TFileStream.Create( '\192.168.0.105sharetest.txt', fmCreate );이 때 대상 컴퓨터에 암호가 걸려있다면 골치가 아프죠.
뭐 시작 -> 실행을 누르고 UNC를 입력한 다음 암호 저장을 해 두면 됩니다만...
공유암호를 키 체인에 저장해두는 건 그다지 바람직한 방법이 아닙니다.
다음 프로시저는 이 경우에 써먹을 수 있습니다.
간단한 코드니 설명은 생략하고, 참조 파라미터로 넘겨주는 ConnStr 에 연결을 위한
문자열을 반환하도록 해 두었으니 잘 사용하세요.
// 도메인에 연결을 만든다. function UseConnection(const aDomain, aUserID, aPassWord: String; var ConnStr: String): Boolean; var NetResource: TNetResource; ConnStrLen: DWORD; RetFlag: DWORD; RetValue: DWORD; begin FillChar(NetResource, SizeOf(TNetResource), 0); with NetResource do begin dwType := RESOURCETYPE_ANY; lpLocalName := nil; // 로컬 드라이브 지정하지 않음 lpRemoteName := PChar('\' + aDomain); lpProvider := nil; end; SetLength(ConnStr, MAX_PATH); ConnStrLen := MAX_PATH; RetValue:= WNetUseConnection( 0, NetResource, PChar(aPassWord), PChar(aUserID), CONNECT_INTERACTIVE, PChar(ConnStr), ConnStrLen, RetFlag ); SetLength(ConnStr, StrLen(PChar(ConnStr))); ConnStr := '\'+aDomain; Result := RetValue = 0; end;
TAG IT·컴퓨터
TRACKBACK ADDRESS :: 이 글에는 트랙백을 보낼 수 없습니다
