Выдавать себя за пользователя в WCF от нескольких абонентов - PullRequest
0 голосов
/ 26 ноября 2010

Я использую сервисы WCF, гарантирующие, что имя пользователя / пароль должны быть указаны для каждого запроса.Мне нужно использовать один и тот же сервис от многих клиентов, но мне нужно олицетворять вызов, чтобы получить доступ к соответствующим ресурсам для каждого клиента.Когда я вызываю сервис напрямую с клиента, проблем не возникает, потому что я использую для каждого клиента пару UserName / Password, определенную в их web.config.Проблема возникла, когда мне нужно позвонить второму веб-сервису из первого и использовать тот же идентификатор.Эта вторая веб-служба требует имя пользователя / пароль, но я знаю только, кто является вызывающим абонентом (имя пользователя), но не пароль.

Как я могу выдать себя за этот второй вызов, не зная пароля для соответствующего имени пользователя?

РЕДАКТИРОВАТЬ : приложение (веб-приложение и службы) работает в среде общего хостинга, где я не могу использовать проверку подлинности Windows для настройки Kerberos для делегирования.Я определил UserNameValidator для обработки при каждом вызове пары UserName / Password для пользовательской базы данных SQLServer.Более того, предполагаемые клиенты этого приложения будут использовать его из Интернета, не требуя учетной записи Windows, потому что мне нужна более гибкая схема аутентификации на основе SQL.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2010

Вы ознакомились с декларативными вариантами безопасности? Связанная статья Ювала Лоуи также включает сценарий интернет-приложения.

0 голосов
/ 26 ноября 2010

Вам нужно взглянуть на использование Kerberos для обработки передачи аутентификации и далее другим службам из вашей первой службы WCF.

...