2011-09-24 3 views
3

.NET 프로그램을 C : \ Program Files에 설치하고 실행하면 관리자 권한 (Win7)을 묻지 않지만 관리자 권한을 부여하지 않으면 응용 프로그램의 디렉토리에있는 파일을 열 수 없습니다 수동으로. C에 없으면 잘 작동합니다.파일을 여는 경우에도 내 프로그램에 관리자 권한이 필요합니까?

내 응용 프로그램에 관리자 권한을 요청하는 사용자 지정 매니페스트 파일을 추가 할 수 있지만 필요하지 않은 경우에도 항상 요청할 수 있습니다.

소프트웨어를 설치 한 후에 프로그램 파일에 아무 것도 써서는 안되지만 파일 (예 : 언어 파일)을 읽을 수는 없습니다. 데이터베이스 파일도 있는데이 파일은 프로그램에서 읽고 쓰고 있으므로이 파일을 어디에 두어야합니까?

그래서 관리자 권한이없는 파일을 읽을 수있는 권한이없는 것은 아닌지 궁금합니다. 필요한 경우에만 프로그램에 관리자 권한을 요청할 수 있습니까?

EDIT 시스템 관리자로 로그온했습니다.

+0

읽을 부분을 다시 확인할 수 있습니까? –

답변

2

일반 사용자에게는 Progrem Files 폴더에 쓰기 권한이 없습니다. 그러나 (콘텐츠) 파일을 읽을 수 있어야합니다. 파일을 읽으면서 당신을 어떻게 열어 줍니까?

적절한 방법은 지정된 폴더를 사용하는 것입니다.

string dataFolder = Environment.GetFolderPath(
     Environment.SpecialFolder.ApplicationData); 
+1

관리자 권한을 가진 사용자에게 쓰기 권한이 없기 때문에 모든 사람이 관리자가되어 UAC가 존재합니다. –

+0

당신이 옳았습니다. 제 3 자 프로그램은 파일을 저장하고 싶지 않더라도 읽기/쓰기 권한으로 파일을 엽니 다. 그래서 혼란 스러웠습니다. ApplicationData 폴더는 사용자별로 설정하는 것이 좋을 것 같습니다. 필자는 데이터베이스 파일을 전역으로 저장하므로 모든 사용자가 동일합니다. "모든 사용자"문서에이를 저장하는 것이 좋습니까? –

+2

@Kisga'SpecialFolder'는 많은 옵션을 가진 enum입니다. 그들을 찾아 봐. –

관련 문제