2009-07-30 2 views
0

내 ASP 페이지가 공유 디렉터리에서 파일을 읽고이를 사용자에게 보냅니다.IIS 서비스가 로컬 시스템 계정으로 실행되고 있으므로 공유 디렉터리 사용 권한을 어떻게 부여합니까?

 Response.Clear(); 
     Response.ContentType = "application/octet-stream"; 
     Response.AddHeader("Content-Disposition:", string.Format("attachment; filename={0}", fileName)); 
     Response.WriteFile(filePath); 
     Response.End(); 

이 ASP 코드는 웹 서버에서 실행되며 IIS가 있기 때문에 로컬 시스템 계정으로 실행되고 있다고 가정합니다. filePath가 파일 서버의 파일을 가리 킵니다. \\ fileserver \ shared \ abc.pdf

로컬 컴퓨터에서 코드를 디버깅 할 때 ASP 페이지에서 파일을 올바르게 읽습니다. 그러나 웹 서버에서 실행할 때 파일을 읽을 수 없습니다. ASP 페이지에서 파일을 올바르게 읽을 수 있도록 \ fileserver \ shared를 부여하려면 어떤 권한이 필요합니까? 분명히 로컬 시스템은 권한 페이지에서 유효한 사용자 로그온이 아닙니다.

+0

동일한 서버가 제공하는 다른 모든 웹 페이지에 영향을 미치기 때문에 응용 프로그램 풀 ID를 변경할 수 없습니다. 현재 환경에서는 암호를 파일에 저장할 수도 없습니다. 파일 서버의 다른 프로세스에 원격 호출을 수행하고 원격 호출을 통해 파일 내용을 전달할 것을 생각합니다. 아니면 이것보다 간단한 방법이 있습니까? – yyykk

답변

1

기본적으로 IIS는 응용 프로그램 풀을 "네트워크 서비스"로 실행합니다. 이것은 IIS 상자의 로컬 계정입니다. 네트워크 공유에 액세스하려면 응용 프로그램 풀 ID를 도메인 계정과 같이 공유에 대한 액세스 권한이있는 계정으로 다시 구성해야합니다.

두 상자가 도메인에 없으면 두 컴퓨터에서 동일한 사용자 이름과 암호를 만들 수 있으며 두 컴퓨터에서 동일하게 사용할 수 있습니다 (응용 프로그램 풀의 경우 해당 설정을 사용하여 공유에 대한 액세스 권한을 허용하도록 설정)) 사용자가 파일 서버에 있습니다.

0

공유에 액세스 할 수있는 사용자로 가장하려고 할 수 있습니다. 귀하의 web.config에 다음을 추가하십시오 :

+0

아, 항상 web.config에 암호를 포함시키는 것은 좋지 않습니다. 이 경로를 간다면 web.config를 숨겨서 암호화해야합니다. – blowdart

관련 문제