2009-04-14 5 views
2

단일 서버 (Windows 2003/IIS 6)가 있습니다. 이 서버에는 IIS에 몇 가지 "웹 사이트"설정이 있습니다. 각 사이트는 고유 한 호스트 헤더 (포트 80)로 IIS에 구성됩니다. 또한 각 사이트는 지정된 포트 번호 (호스트 헤더 없음)를 통해 액세스 할 수도 있습니다.401 ASP.NET 웹 응용 프로그램에서 ASP.NET 웹 서비스에 연결할 때 권한이 없음

MySite1 : http://apps.mysite1.com 또는 http://myserver:xxxx

MySite2 : http://something.mysite2.com 또는 http://myserver:yyyy

내 호스트 파일을 편집 한 이 (가 개발 기계의)는 리디렉션 예를 들어

각 사이트의 호스트 헤더를 로컬 시스템 (127.0.0.1)으로 복사하십시오.

하나의 IIS 사이트 (mysite1)에는 ASP.NET 2.0 웹 사이트가 있고 다른 IIS 사이트 (mysite2)에는 ASP.NET 2.0 웹 서비스가 있습니다. 모든 사이트는 Windows 통합 보안 및 ASP.NET에 대해 구성된

MyWebService svc = new MyWebService(); 
//also have tried "http://myserver:yyyy/MyWebService.asmx" below 
svc.Url = "http://something.mysite2.com/MyWebService.asmx"; 
svc.Credentials = System.Net.CredentialCache.DefaultCredentials; 
svc.MyMethod(); 

이 = "true"로/> < 신원 IMPERSONATE과 Windows 인증을 위해 구성된 : 웹 사이트는 다음과 같은 코드를 사용하여 웹 서비스와 통신합니다. 보안 모델은 웹 응용 프로그램에 로그인 한 사용자가 웹 서비스의 모든 단계에서 인증을 받아야한다는 것을 나타냅니다 (기본 데이터베이스까지 이어지는 인증을 받아야하지만 여기서는 반드시 관련이 없습니다).

웹 서비스 (새 메서드)를 다시 작성했지만 이제는 401 인증되지 않은 메시지로 끝나는 웹 서비스 호출의 결과가 작동하지 않습니다.

이중 홉 문제처럼 들립니다. 저는 웹 서비스가 전달되는 자격 증명을 수락하지 않고 새로운 웹 서비스가 전달되도록 도전하지 않는다고 생각합니다. 이것을 확인하는 방법을 모르겠습니다. 그게 왜 어려울 지 확신하지 못합니다. - 기계/도메인 관리자로 로그인했으며 인터넷 옵션> 보안 탭> 사용자 지정 수준> 인트라넷 영역의 자동 로그온에서 자격 증명을 전달하도록 IE가 구성되었습니다. 예, 관련 사이트가 "인트라넷 영역"에 추가됩니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 지금이 원인이 될 수있는 아이디어가 있습니까?

TIA!

답변

1

double-hop issue처럼 들립니다. 이중 홉 문제인지 확인하려면 svc.Credentials =을 읽고 명백하게 테스트 할 자격 증명을 넣은 행을 변경하고 작동하는지 확인하십시오. 작동한다면 이중 홉 문제이므로 문제를 해결해야합니다.

+0

그래,이게 내가 의심하는 바야. 나는 나의 질문 인 것 같아서 해결할 방법을 모른다. – Brian

+0

이 kb 기사를 통해 Kerberos Delegation을 사용할 수 있습니다. 위임을 통해 두 번째 IIS가 첫 번째 신뢰를 허용합니다. 연결에 대해 사용자 신임을 사용하는 경우 DB 서버에서도이 작업을 수행해야합니다. http://support.microsoft.com/kb/810572 – dar

관련 문제