I've created a WCF service with a wsHttpBinding and Message security. Then I added a service reference which resulted in the client's config file being updated with this:
<client>
<endpoint address="http://localhost:42160/Service1.svc/secure"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IService1"
contract="SecureProxy.IService1" name="WSHttpBinding_IService1">
<identity>
<userPrincipalName value="[email protected]" />
</identity>
</endpoint>
</client>
I don't understand what the userPrincipalName is for. No matter what I modify the value to, the client and service communicate successfully. It doesn't seem to serve any purpose.
This MSDN article attempts to explain the purpose in detail, and somehow manages to explain nothing at all.
What problem was Microsoft trying to solve by adding that into the WCF story? Again, I can change the value to anything I want and it doesn't affect the client and service.
Also, here is a similar question.