I have a SL5 application that uses a WCF backend and the PollingDuplexHttpBinding, and it works pretty well for the most part. The binding is exposed using TransportWithMessageCredentials on the security, and I have a custom authenticator on the service side. I also have a net.tcp endpoint exposed for windows clients, and it works with the same security settings.
Now, I know that net.tcp doesn't work with transport security in silverlight 4, but were there any changes in 5 that might have made this possible? Furthest I've managed to get is to do something like this in the SL app:
BindingElement[] e = { TransportSecurityBindingElement.CreateUserNameOverTransportBindingElement(), new TcpTransportBindingElement() };
CustomBinding b = new CustomBinding(e);
Which just throws the exeption:
The 'CustomBinding'.'http://tempuri.org/' binding is configured with an authentication mode that requires transport level integrity and confidentiality. However the transport cannot provide integrity and confidentiality.
Is this basically Silverlight's way of saying "no, I really can't do transport security"? I'd actually be OK with message security even-it's really the authentication that I absolutely need to have work on this application. It'd be a shame to not be able to get the throughput of TCP just because it never got finished...
Has anyone managed to come up with a custom binding that'll work in this case?