Как распространять удостоверение Windows без использования делегирования в WCF?

Мне нужно распространить удостоверение Windows текущего пользователя на два вызова службы.

Служба A (которая работает в рамках встроенной проверки подлинности) вызывает службу B (которая также работает в рамках встроенной проверки подлинности). Мне нужно определить идентификатор пользователя, который использовался для вызова службы A в коде службы B.

Я знаю, что это возможно с помощью делегирования, олицетворяя пользователя в коде службы A, а затем вызывая службу B из олицетворенного кода.

Однако я хочу только передать личность, а не олицетворять пользователя. Возможно ли это без олицетворения?


person SharePoint Newbie    schedule 18.07.2011    source источник
comment
вы просто хотите, чтобы имя пользователя было отправлено во вторую службу, или вы хотите, чтобы второй вызов службы был сделан под личностью пользователя?   -  person Richard Blewett    schedule 18.07.2011
comment
Я просто хочу, чтобы имя пользователя было отправлено во вторую службу или любым другим способом идентификации исходного пользователя во второй службе.   -  person SharePoint Newbie    schedule 18.07.2011


Ответы (2)


получить аутентифицированного пользователя, используя ServiceSecurityontext.Current.PrimaryIdentity.Name

Добавьте это либо как заголовок, либо как поле в нижестоящем запросе на обслуживание.

person Richard Blewett    schedule 18.07.2011
comment
Беда в том, что у нас уже много сервисов написано. Мы могли бы использовать делегирование, но не хотим этого. Запасной вариант, конечно, заключается в написании кода для распространения этих учетных данных в поле. Можно ли распространять только идентификатор без олицетворения и без использования поля или заголовка для нижестоящей службы? (знаю, звучит глупо, но просто спрашиваю) - person SharePoint Newbie; 18.07.2011
comment
Невозможно автоматически отправить идентификатор вниз по течению без его явной передачи или делегирования. - person Richard Blewett; 18.07.2011
comment
Спасибо за помощь Ричард. - person SharePoint Newbie; 18.07.2011

Я думаю, вы ищете уровень олицетворения под названием «Идентификация». Описание различных уровней олицетворения в WCF см. в этой статье.

person Ozzy    schedule 18.07.2011
comment
Я знаю, что идентификатор можно использовать для идентификации учетных данных в первой службе. Что насчет хопа? Как передать эти учетные данные второму вызову без олицетворения? - person SharePoint Newbie; 18.07.2011