I'm looking for some technical detail on where the actual username + password (credentials) are being stored during the message exchange using a WCF binding like the below.
<bindings>
<wsHttpBinding>
<binding name="wsHttp">
<security mode="TransportWithMessageCredential">
<transport/>
<message clientCredentialType="UserName" negotiateServiceCredential="false" establishSecurityContext="true"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
Then inside the client application I call this service passing a valid set of creds like so
using (SupplierServiceClient client = new SupplierServiceClient()) {
client.ClientCredentials.UserName.UserName = "admin";
client.ClientCredentials.UserName.Password = "password";
SupplierList = client.GetSupplierCollection();
}
At first I assumed that WCF was taking this data and putting it into the SOAP header but it doesn't appear that way from the WSDL ... any help?
Edit
The below is what the security configuration for the client looks like in production
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None"/>
<message clientCredentialType="UserName" establishSecurityContext="false" />
</security>