2010-12-12 1 views
1

안녕하세요, LogonUser을 사용하여 몇 군데에서 가장을하고있었습니다..net (C#)에서 가장하고 Process.start를 통해 파일 열기

(나는 훌륭한 클래스 라이브러리를 사용하여 here을 도입했으나 원칙은 웹 전체에서 동일하게 보인다.)

나는 "정상적인"사용자가 할 수없는 장소로 가장하고 가장하는 데 성공했습니다. 내가 프로그래밍 Process.Start를 사용하여, 어떤 doc 파일 또는 txt 파일 또는를 열려고하면, 나는 오류를 얻을

"충분한 메모리 나 디스크 워드를 실행하는 공간이 없습니다." 내가 프로그래밍 다른 사용자를 사용하여 특정 파일을 열려고하면

내가지고있어, 다음 내 일반 사용자를 사용하여 프로그래밍 방식으로 단어를 시작할 수 있지만 :

는 "액세스가 거부되었습니다."

사실, 내 컴퓨터에 손으로 로그온 할 때이 다른 사용자는 파일을 열 수있는 권한을가집니다.

+0

서버에서 Word를 실행하지 마십시오. – SLaks

+0

내가 말했듯이, 그것은 단지 단어가 아닙니다. 그것도 txt 파일입니다. –

+0

서버에서 메모장을 실행하지 마십시오. 너 뭐하려고? – SLaks

답변

1

이 메시지는 ProcessStartInfo.LoadUserProfile의 문제와 같은 냄새가납니다. 기본값은 false입니다. 부작용으로 시작한 프로세스에 가장 된 계정이 아닌 계정의 HKCU 레지스트리 설정이 표시됩니다. 오피스 프로그램은 이런 것을 좋아하지 않을 것입니다.

이 설정을 적용하려면 UseShellExecute를 false로 설정해야합니다. 그것은 단순히 .doc 파일을 파일 이름으로 전달하여 Word를 시작하는 능력을 저해 할 것입니다. 대신 "winword.exe"를 사용해야합니다.