I'm trying to dig into the messages that are exchanged when you sign a message using Windows credentials. I've modified the default service that is provided when you create a WCF service to use the following binding:
<wsHttpBinding>
<binding name="MyBinding">
<security mode="Message">
<message clientCredentialType="Windows" />
</security>
</binding>
</wsHttpBinding>
I'm requiring the client to sign the message via the ServiceContract attribute:
[ServiceContract(ProtectionLevel=ProtectionLevel.Sign)]
My client is using the same exact binding as the service.
My question is this: When I use Fiddler to watch the traffic between client and service, why do I see five exchanges, and what does each of them do?
I'm including an example of all of the exchanges for completeness. Because of the size, I've put it on pastebin; you can see it here.
Edit: Looks like the first four exchanges relate to WS-Trust.