Message contract we can use when we have pass authentication detail to soap header instead passing as paratmeter in datacontract like ex. license key or user credentials. Passing parameter is not secure. But we can secure datacontract using security(transport or message). Why do we need messageContract? then what is difference bewteen message contract and data contract/
"Message contract has full control on SOAP message and we can also add Protection Level and message can encrypted and secure. It could be signing or encrypting SOAP header information. Mixing message and data contracts will cause a runtime error when you generate WSDL from the service."