Я написал приложение Silverlight 2, взаимодействующее с сервисом WCF (BasicHttpBinding). Сайт, на котором размещается контент Silverlight, защищен с использованием поставщика членства ASP.NET. Я могу получить доступ к текущему пользователю, используя HttpContext.Current.User.Identity.Name из моей службы WCF, и я включил AspNetCompatibilityRequirementsMode.
Теперь я хочу написать приложение Windows, используя тот же веб-сервис. Чтобы обрабатывать аутентификацию, я включил службу Аутентификация и может вызвать "login" для аутентификации моего пользователя... Okey, все хорошо... Но как, черт возьми, я получаю этот cookie проверки подлинности на моем другом сервисном клиенте?!
Обе службы размещаются в одном домене
- MyDataService.svc - тот, который касается моих данных
- AuthenticationService.svc < - тот, который приложение Windows должно выполнить для аутентификации.
Я не хочу создавать новую службу для клиента Windows или использовать другую привязку...
Службы клиентских приложений - еще одна альтернатива, но все примеры ограничены, чтобы показать, как получить пользователя, роли и его профиль... Но как только мы аутентифицируемся с использованием клиентских приложений, должен быть способ получить этот cookie проверки подлинности, прикрепленный к моим клиентам службы при обращении к тому же серверу.
По словам коллег, решение добавляет конечную точку wsHttpBinding, но я надеюсь, что смогу обойти это...