Моя компания использует WIF (Windows Identity Foundation) для защиты наших сервисов. В настоящее время мы используем только WIF поверх HTTPS. Однако нам нужно защитить конечную точку TCP, и у меня возникают некоторые проблемы.
Я получаю следующее исключение:
The '{binding name}'.'http://tempuri.org/' binding for the '{IService}'.
'http://tempuri.org/' contract is configured with an authentication mode that requires
transport level integrity and confidentiality. However the transport cannot provide
integrity and confidentiality.
Чтобы получить WIF-изображение, мы должны сделать это внутри хоста службы:
var istp = new IssuedSecurityTokenParameters(_TokenType, _IssuerAddress, _IssuerBinding) // issuer address/binding do not matter for this, but must provide something
{
RequireDerivedKeys = false,
KeyType = System.IdentityModel.Tokens.SecurityKeyType.BearerKey
};
TransportSecurity = new TransportSecurityBindingElement();
TransportSecurity.EndpointSupportingTokenParameters.Signed.Add(istp);
TransportSecurity.MessageSecurityVersion = MessageSecurityVersion.WSSecurity11WSTrust13WSSecureConversation13WSSecurityPolicy12;
Я не могу удалить эти строки кода, но я не знаю, какую конфигурацию мне не хватает, чтобы заставить это работать с TCP. Любая помощь была бы великолепна.