2012-02-21 4 views
1

네트워크 공유에 파일을 쓰려고합니다. 나는 그것을 작동 시키는데 어려움을 겪고있다. 나는 공유에 액세스하는 데 사용되며 다른 결과를 발견 지역의 어떤 계정이 포럼에 조사 하였다 :ASP.NET - 파일 공유에 파일 쓰기

가 NetworkService (로컬 계정) ASPNET (로컬 계정) 사용자 네트워크 계정 (inpersonation이 설정되어있는 경우) 의 조합 응용 프로그램 수명주기의 단계에 따라 달라집니다.

별도의 서버에 파일 공유가있는 경우이 파일을 \ servername \ share name과 같이 액세스 할 수 있도록 설정하려면 어떻게해야합니까? 익명 인증을 사용하지 않는 IIS 버전 6을 사용하고 있습니다.

답변

1

올바른 구문은 다음과 같습니다 권한이 옳다고 가정

\\serverAddressOrName\share 

, 당신은 System.IO 네임 스페이스와 당신 것 실제 경로 이름으로이 경로를 사용할 수 있어야합니다.

1

이것은 잘 정의 된 동작이며 의도적으로 설계된 동작입니다. 기본적으로 웹 응용 프로그램을 사용하여 네트워크 공유에 쓸 수 있습니다. 다시 한 번 뒤로 물러나면 월드 와이드 웹에 대한 리소스에 큰 구멍을 열어 놓고 있습니다. 이것이 필수적이며이 방법이어야한다면 로컬 컴퓨터 경로에 "d : \ data \ workingfolder"라고 말하면서이 파일들을 생성 할 것입니다. 이 위치를 모니터링하는 filesystemwatcher를 구현하는 Windows 서비스를 작성하십시오. 철저한하지만이 서비스는 해당 네트워크 공유에 액세스 할 수있는 도메인 계정으로

  1. 실행은하지 않습니다 - \\ securedmachine \ finallocation
  2. 이 파일에 대한 몇 가지 유효성 검사를 수행 (및 내용 경우가있을 필요)
  3. 을 말할 수 D에서
  4. 포트를 파일 : \ 데이터 \ workingfolder에 \\ securedmachine \ finallocation

나는 안전하게 자원을 유지하기 위해 (당신이 말을 선호하는 경우 또는 해결 방법) 및 분리가이 강력한 솔루션이라고 생각 어느 정도 관심사 (예 : UI를 통해 Windows 서비스 및 데이터 수집)

그러나 여전히 asp.net이 네트워크 공유에 직접 액세스하도록하려면 가장 (impersonation)을 사용하여이 작업을 수행 할 수 있습니다. ASP.net은 iusr_user **에서 실행됩니다. 이 계정은 로컬 계정이므로이 계정에 네트워크 리소스 액세스 권한을 부여 할 수 없습니다. 이 솔루션은 잘 http://www.west-wind.com/weblog/posts/2005/Feb/24/Using-programmatic-Impersonation-from-an-ASPNET-Page

이 도움이 희망과 행운

크리슈나

+0

감사합니다 설명되어 있습니다. 웹 응용 프로그램은 세 대의 클라이언트 PC에 배포됩니다. 필자는 세 대의 클라이언트 PC에 배포 할 수있는 FileSystemWatcher에 대한 아이디어를 좋아합니다. 응용 프로그램은 인트라넷 기반입니다. 언급 한 보안 루프 구멍에 따른 위험이 여전히 있다고 생각합니까? – w0051977

+0

인트라넷 응용 프로그램 인 경우 보안 문제는 "노이즈"가됩니다. 방화벽 리소스를 사용하기 위해 누군가 방화벽을 통해 침입해야하고 그렇지 않은 경우 응용 프로그램을 사용하여 해를 입힐 필요가 없으므로 응용 프로그램이 제공하는 것보다 많은 손상을 초래할 수 있습니다. 그러나 네트워크 공유에서 웹 액세스를 분리하는 것이 좋은 습관이라고 생각합니다. 귀하의 의견에서 나는 솔루션을 명확하게 표현하지 못했다고 생각합니다. 당신은 3 파일 시스템 감시자를 쓸 필요가 없다.웹 서버에있는 하나만 있으면 충분합니다. – Krishna

+0

"월드 와이드 웹에 대한 리소스에 큰 구멍을 열었습니다"- A) 이전 ASPX 페이지를 업로드 할 수있는 경우에만 (어쩌면 당신은 호스팅 회사를 운영하고 있습니까?) 또는 B) 전체 시스템이 잘못 설계되었습니다. 이것은 잘 설계된 하부 구조에서 우려가되어서는 안됩니다. –