Message header values missing in WCF request
===

I have a WCF service which I am including a custom message header for vendor credentials in. I've created a class called 'AuthHeader' that inherits from SoapHeader, and added properties for a username and password.

    public class AuthHeader : SoapHeader
    {
        public string Username;
        public string Password;
    }

I'm adding the header using the following code on the client:

     OperationContext.Current.OutgoingMessageHeaders.Add(
        MessageHeader.CreateHeader("Identity", 
                                   "http://www.my-website.com",
                                   new AuthHeader
                                       {
                                           Username = "UserNameValue",
                                           Password = "PasswordValue"
                                       }
                                  ));

I then attempt to retrieve the header in the service using the following:

    var result = OperationContext.Current.IncomingMessageHeaders.GetHeader<AuthHeader>("Identity", "http://www.my-website.com");

While this code finds the header, it does NOT deserialize the values correctly, rather, Username and Password on the result object are null. Any idea why it isn't setting these property values?