2014-07-17 4 views
0

도메인 내의 원격 서버 (OurDomain)에 파일을 복사하는 웹 응용 프로그램이 있습니다. 다음과 같은 문제는 랩톱에 다른 도메인으로 로그온 한 다음 OurDomain으로 웹 응용 프로그램에 로그온하는 사용자에게 발생합니다. OurDomain \ User으로 랩톱 및 웹 응용 프로그램에 모두 로그온하는 사용자에게는이 문제가 없습니다.Windows 인증을 사용하는 ASP.Net 가장 사용하기

제 1 회 웹 양식이 System.Security.Principal.WindowsIdentity.GetCurrent()를 사용하여 사용자의 ID를 검색 한 다음이 사용자 ID와 이메일을 보냅니다

우리는이 개 웹 양식을 가지고있다. 이 코드는 Windows AuthenticationEnabled이고 ASP.Net ImpersonationEnabled으로 설정된 경우에만 사용자의 ID를 검색합니다. ASP.Net ImpersonationDisabled으로 설정된 경우 사용자는 Network Service이됩니다. 따라서 Enabled로 설정하면 모든 것이 잘 작동합니다.

두 번째 webform은 일부 파일을 원격 서버에 복사하고 OurDomain 도메인에도 복사합니다. Windows AuthenticationEnabledASP.Net ImpersonationDisabled으로 설정하면 Network Service은 파일을 원격 서버로 복사하는 데 사용되며 올바르게 복사됩니다. 반면 ASP.Net ImpersonationEnabled으로 설정되면 Network ServiceOurDomain \ User을 우회하여 랩톱에 로그온하는 데 사용 된 자격 증명 (다른 도메인)을 사용하여 복사하려고합니다. 파일은 복사하지 마십시오 나는 오류를 내가 찾은 유일한 수정 폴더로 OurDomain \ 사용자을 추가하는 것입니다

거부 ​​경로에 액세스를 얻을, 그것은 정말 큰 문제가 아니지만, 나는 이것이 왜 일어 났는지보고 싶었습니다.

감사합니다.

답변

0

OurDomain \ User가 웹 브라우저에서 시스템에 로그인 한 사용자라고 생각합니다. 해당 사용자 그룹에 서버 폴더 액세스 권한을 부여하는 것은 좋은 보안 방법은 아닙니다. 이러한 사용자에게 액세스 권한을 부여하면 웹 응용 프로그램없이 원격 폴더를 탐색 할 수도 있습니다.

NetworkService는 시스템이 생성 된 시스템에서 역할을 수행하는 사용자입니다.

OruDomain \ webappuser에서 asp.net appPool 사용자로 사용자를 만드는 것이 더 좋습니다. 즉, w3wp 작업자 프로세스를 실행하는 사용자입니다. 암호를 admin.Give OurDomain \ webappuser로 원격 폴더에 대한 권한으로 보냅니다. 명의를 도용하지 않고 웹 양식을 실행하십시오.

안전하게 내가 생성/수정하거나 어떤 방식으로 변경할 수 없습니다

+0

webappuser OurDomain \의 맥락에서 asp.net 응용 프로그램 실행으로 폴더에 복사 할 수 있습니다 webform2에 파일 업로드 대화 상자를 통해 수신 이제 파일 OurDomain의 사용자 – vmgmail

+0

네트워크 서비스 이외의 앱 풀 사용자를 가질 방법이없는 경우 가장해야 할 수도 있습니다. ie asp.net 응용 프로그램은 브라우저에 로그인 한 사용자가 웹 서버에서 프로그램을 실행하는 것처럼 실행됩니다. 이 경우 브라우저에 로그인 한 사용자가 원격 폴더에 대한 권한을 가지고 있으면 파일 복사가 작동합니다. –