2012-06-26 4 views
2

특수 폴더에 기록해야하는 보고서를 만들려면 응용 프로그램 (.Net)을 프로그래밍하고 있습니다.
문제는 응용 프로그램 사용자가이 폴더에서 읽기 권한을 갖고 있어야하지만 쓰기 또는 변경이 허용되지 않는 것입니다. 프로그램이 사용자의 권한을 상속 받으면이 폴더에 파일을 어떻게 만들 수 있습니까?사용자가 시작하는 것보다 더 많은 권한을 프로그램에 부여하는 방법

저는 Windows 권한을 갖고 있지 않으므로이 권한을 처리 할 수 ​​있는지 여부는 잘 모릅니다.

누군가 나를 일반적인 방향으로 안내 할 수 있습니까?

+0

이 작업을 수행하는 간단한 방법은 없습니다. 가능하다면 프로그램을 해당 디렉토리에 부적절하게 작성하는 방법을 피할 수있는 방법이 없다는 것을 보장해야합니다. 당신 자신. –

+0

그래, 나는 그만큼 생각했다. 하지만 아마도 해결 방법이있을 수 있습니다. 어쩌면 특수 사용자를 만들 수 있으며 응용 프로그램에서이 사용자 계정의 권한을 사용할 수 있습니다. – user1482185

+0

프로그램이 작동하도록 * 특수 사용자 *를 만들면 프로그램이 액세스 할 수있는 어딘가에 자격 증명을 저장해야합니다. 표준 사용자로 실행 **. 즉 궁극적으로 보안을 잠재적으로 비효율적으로 만드는 표준 사용자가 자격 증명을 사용할 수 있음을 의미합니다 (대다수의 사용자를 막을 수있는 자격 증명을 암호화 할 수는 있지만 기술적으로는 조금이라도 방해가되지는 않습니다. 수 및/또는 결정). – Rob

답변

1

확실한 방법은 폴더에 대한 쓰기 권한이있는 서비스를 만드는 것이므로 폴더에 쓰기 요청에 대한 "브로커"역할을 할 수 있습니다. 프로세스는 다음과 같을 것이다 :

  1. [프로그램]은 임시 파일 경로에 보고서 출력을 작성
  2. [프로그램] 알립니다 [서비스] 그 보고서 출력 X가 임시 파일 경로
  3. 을 [에서 사용할 수 있습니다 SERVICE] 보고서 출력 X를 임시 파일 경로에서 적절한 제한된 위치로 복사합니다.
  4. [SERVICE] [PROGRAM] 출력이 복사되었음을 알립니다.
  5. [PROGRAM] 제한된 위치에서 출력에 액세스합니다. 제한 위치에 대한 액세스를 중재 별도의 브로커 프로세스를 갖는

지금은 매우 일반적이며이 UAC 기본적으로 제한된 파일 시스템 액세스와 함께 작동 할 수 있도록, 다른 사람의 사이에, Internet Explorer에서 emoployed 기술 중 하나입니다.

브로커 서비스를 코드화하여 (예 : API 만 허용), 예를 들어 제한된 위치에 새 파일을 작성하여 기록 출력이 삭제/덮어 쓰기되는 것을 방지하고 표준 사용자에게 줄 필요가 없도록 할 수 있습니다 제한된 위치에 대한 읽기 액세스 이외의 다른 것.

대체로 비슷할 수도 있지만 Windows 서비스를 작성하지 않아도되는 또 다른 방법은 1-5 단계에서 작업을 수행하는 "승격 된 사용자"로 실행되도록 구성된 예약 된 작업을 만드는 것입니다. 그런 다음 응용 프로그램에 의해 필요에 따라 (일정보다) 실행되도록 구성하십시오 (I 생각하면 가능하지만 100 % 확신 할 수는 없습니다).

관련 문제