2011-08-12 6 views
1

클라이언트를 웹 서비스로 가장 할 때 한 번 호출해야합니까, 아니면 호출 할 때마다 여러 번 호출해야합니까? 근본적으로 클라이언트.가장 : 한 번만 호출하거나 한 번만 호출 할 수 있습니다. MVC2 callng -> WCF

client.ClientCredentials.Windows.AllowedImpersonationLevel = 
    System.Security.Principal.TokenImpersonationLevel.Impersonation; 

나는 나의 컨트롤러를 여러 번 호출한다. 나는 이것을 한 번만 부른다. 내 웹 사이트의 첫 번째 페이지 (이 웹 사이트는 MVC2 웹 사이트)를 통과하지 못하는 것 같습니다. 내 WCF 웹 서비스를 호출합니다.

약간 혼란스러워. 너희들이 어떤 도움이된다면 크게 감사하겠다. 감사.

답변

1

프록시 (클라이언트 채널) 인스턴스마다 가장이 허용되므로 다른 컨트롤러/작업에 대해 새 프록시 인스턴스 (client)를 만드는 경우 각 프록시 인스턴스에 대해 구성해야합니다. 일단 인스턴스를 생성하면 해당 인스턴스에서 서비스에 대한 여러 호출을 수행 할 수 있으며 클라이언트를 올바르게 가장합니다. WCF 서비스와 통신해야하는 각 MVC 작업에 대해 새 프록시 인스턴스를 만들어야합니다.

btw. 원래 사용자 (MVC 응용 프로그램에 액세스하는 사용자) 또는 MVC 응용 프로그램을 호스팅하는 AppPool을 실행하는 사용자 계정을 가장하려고합니까? 첫 번째 사례가 시나리오 인 경우 가장 (impersonation)이 단일 네트워크 홉으로 제한되기 때문에 문제가 발생할 수 있습니다. 즉, 사용자는 MVC 응용 프로그램을 호스팅하는 서버 (첫 번째 홉)를 가장 할 수 있지만 WCF 서비스가 다른 서버 (두 번째 홉)에있을 경우 (단일 홉 제한으로 인해) 가장하지 못합니다. 이러한 시나리오에서는 가장 대신 위임이 필요하며 위임에는 올바르게 구성된 Kerberos가 필요합니다.

+0

조금 더 자세히 설명해 주시겠습니까? 내가 처음하는 것처럼 들린다. 내 MVC 웹 사이트, 하나의 서버에서 실행, 나는 그가 (Windows 인증)와 함께 로그인하고 내가 작성한 WCF 서비스에 액세스 할 수있는 사용자 광고 정보를 얻을 필요가있다. 위임을 살펴보고 Kerberos를 구성 해 보겠습니다. 더 자세히 설명해 주시면 감사하겠습니다. – SoftwareSavant

+1

MVC 응용 프로그램을 다른 서버에서 실행 한 다음 WCF 서비스를 실행하는 경우에만 위임이 필요합니다. 그것은 더 많은 관리 기능입니다. Kerberos 및 위임을 사용하려면 서버, AD 및 때로는 클라이언트도 구성해야합니다. 이 기사로 시작하기 : http://technet.microsoft.com/en-us/library/cc780217%28WS.10%29.aspx –