Всем привет. Есть задача сделать Integrated mode security в приложении, которое сосит из клиентской части на Silverlight и набора сервисом, общение с которыми реализовано через WCF сервис, расположенный на хосте, где хостится Silverlight пакет. Binding указанный ниже прекрасно справляется с задачей, когда у нас есть цепочка вызовов вида: silverlight->host->internal service1, правда для того, чтобы на internal service1 видеть корректный identity, приходится делать на хосте дополнительную имперсонацию с помощью вызова ServiceSecurityContext.Current.WindowsIdentity.Impersonate(). Проблемы начинаются, когда нужно выполнить цепочку вызовов длиннее, например, silverlight->host->internal service1->internal service2. В таком случае в ServiceSecurityContext на хосте internal service2 всегда приходит indentity пользователя под которым запущен процесс, хостящий internal service1, не смотря на все имперсонации. Вопрос, что делать, чтобы в контексте internal service2 была identity пользователя, который залогинен на стороне silverlight? Все сервисы хостятся под IIS на разных машинах в одном домене.
<basicHttpBinding>
<binding name="TestHostServiceBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm" />
</security>
</binding>
</basicHttpBinding>