Смешанные режимы аутентификации: отправка токена Kerberos и токена имени пользователя по HTTP с помощью WCF - PullRequest
2 голосов
/ 13 января 2010

Можно ли отправлять токен имени пользователя и маркер kerberos через HTTP с помощью WCF?

Мы можем использовать пользовательскую привязку с режимом аутентификации, установленным в «UserNameOverTransport», который будет включать токен имени пользователя в заголовок SOAP в соответствии со стандартом безопасности веб-служб OASIS.

В качестве альтернативы можно установить режим аутентификации «KerberosOverTransport», который будет включать маркер Kerberos в заголовок SOAP.

Однако служба, с которой мы пытаемся связаться, требует проверки подлинности с использованием как токена Kerberos, так и токена имени пользователя. Это кажется невозможным с существующими режимами аутентификации.

1 Ответ

0 голосов
/ 14 декабря 2010

Токен (который является токеном Kerberos) на самом деле имеет встроенное имя пользователя. Так что, если вам нужно связаться с сервисом, который требует и того, и другого, вам нужно использовать KerberosOverTransport

Затем вы захотите передать токен конструктору WindowsIdentity, который запрашивает IntPtr .

После того, как вы его построите, вы можете получить доступ к имени пользователя через имя свойства . Кусок кода, который почти вам нужен (без битов регистрации), можно найти здесь:

http://kseesharp.blogspot.com/2009/04/c-create-windowsidentity-from-userid.html

...