2010-04-15 1 views
3

코드 :의 asp.net로 가장 사용자

System.Security.Principal.WindowsImpersonationContext impersonationContext; 
impersonationContext = 
    ((System.Security.Principal.WindowsIdentity)User.Identity).Impersonate(); 

//access network resources. 

impersonationContext.Undo(); 

의 Web.config :

web.config 파일에서 명백한 바와 같이
<authentication mode="Windows">  
</authentication> 
<identity impersonate="true" 
userName="user" 
password="password"></identity> 

앱이 가장 된 모드에서 실행됩니다. 네트워크 리소스에 액세스하려면 그 위에 가장해야합니다. 위와 같이 그렇게합니다.

서버에 설치된 로컬 IE에서 웹 사이트를 탐색해도 PC에서 작동하지만 PC 또는 다른 PC에서 응용 프로그램에 액세스하면 액세스가 거부됩니다.

Btw는 엔터프라이즈 도메인 환경 내에 있습니다. 두 경우 모두 IE는 유효한 인증 토큰을 전달하고 있습니다.

어떤 아이디어가 진행되고 있습니까? 감사.

답변

3

서버가 응용 프로그램의 가장 된 보안 컨텍스트를 다른 서버 (언급 한 네트워크 리소스)에 위임하는지 확인해야합니다.

응용 프로그램에 존재하는 가장 된 컨텍스트가 아니라 직접 로그인 한 보안 컨텍스트를 사용하고 있기 때문에 서버에 로그온하는 동안 작동하는 것이 확실합니다.

구성에 대한 세부 사항은 기억이 나지 않지만 위임 또는 "Kerberos Double Hop"이라고합니다. "제한된 위임"은 하나의 위임 유형 만 허용되도록 구성하는 경우입니다. IE에서는이 특정 서버에서 Active Directory (포트 xyz)와 통신 할 때 보안 컨텍스트를 위임 할 수 있습니다. 그렇지 않은 경우에만 보안 컨텍스트를 위임 할 수 있습니다.

Understanding Kerberos Double Hop

DelegConfig를 참조하십시오 - 그것은 위임을 구성하는 데 도움이됩니다.

또한 참조 : TechNet Article

과 : 난 그냥 실현 this other article

+0

내가 두 번째 마지막 문장을 놓쳤다. 위임 문제를 이미 배제한 경우 내 대답을 무시하십시오. – HAL9000

+0

답장을 보내 주셔서 감사합니다. 나는 로컬 요청에서만 작동하기 때문에 AD와 관련이 있다는 것을 확신했습니다. Kerberos Double Hop에 대한 링크는 매우 통찰력이있었습니다. 이 점에서, 나는 거의 완전히 포기하고 완전히 다른 길을 간다. – coderguy123

+0

안녕하세요. 우리 시스템 관리자는 우리 서버에 위임을 구성하는 데 오랜 시간이 걸렸습니다. 당신이 그 주위에 디자인 할 수 있다면 꼭 부탁드립니다. 행운을 빌어 요! – HAL9000