Вызов WCF из ASP.NET с тем же пользователем единого входа LogonUserIdentity - PullRequest
0 голосов
/ 12 марта 2010

У меня есть страница ASP.NET MVC, которая вызывает логику WCF.

Система единого входа с использованием NTML. Страница ASP и WCF будут использовать UserIdentity для получения информации для входа в систему.

Кроме NTML, у меня также будет авторизация на основе форм (с AD) в той же системе.

Страница ASP, это просто, и я могу получить ее из HttpContext.Current.Request.LogonUserIdentity.

Однако, похоже, что он отсутствует в WCF, который вызывает ASP, а не в браузере.

Как настроить передачу идентификатора от ASP к WCF?

1 Ответ

0 голосов
/ 12 марта 2010

Мне кажется, что вам нужно выполнить «Олицетворение» первоначального пользователя, что позволит вам передать идентификацию исходного абонента в службу WCF.

См. Это руководство: Олицетворение и делегирование в WCF

Несмотря на то, что вы настроили ASP.NET для аутентификации своих абонентов через NTLM, рабочий процесс все еще выполняется с идентификатором компьютера (в зависимости от вашей конфигурации в IIS). Вам нужно было бы явно олицетворять вызывающего абонента , если бы процесс принял идентификацию вызывающего абонента, возможно, только временно.

ОБНОВЛЕНИЕ: см. Также Делегация - WCF Gotcha # 2

Если вы хотите избежать олицетворения, вы можете использовать IdentityModel и WindowsClaimSet

...