2010-04-30 7 views
2

Je dois ajouter un en-tête de savon à mon service Web. Je prévois de l'utiliser pour valider mes clients (Windows Mobile Devices).WCF: Utiliser un contrat de message pour créer un en-tête de savon

Je trouve ce lien: http://www.c-sharpcorner.com/UploadFile/rog_21/soapheaders05172007120046PM/soapheaders.aspx

Ce qui est exactement ce que je veux faire. Mais ce n'est pas écrit pour WCF. J'ai fait des recherches et je semble être paralysé par le numberofoptions.

Je veux fondamentalement ajouter un en-tête simple à mon objet de savon qui sera un nom d'utilisateur et un mot de passe. Le client n'utilise pas WCF, donc l'en-tête de savon doit juste être un en-tête de savon normal.

Un exemple de code ou des poussoirs dans le bon sens serait apprécié.

Répondre

3

Plutôt que de définir un DataContract, utilisez MessageContract

[MessageContract] 
public class YourMessageType 
{ 
    // This is in the SOAP Header 
    [MessageHeader] public string UserName {get;set;} 
    [MessageHeader] public string Password {get;set;} 

    // This is in the SOAP body 
    [MessageBodyMember] public string OtherData {get;set;} 
    ... 
} 
+0

Donc, MessageContract est un ou avec DataContract? J'ai déjà beaucoup de DataContracts. Est-ce que je les convertis juste en contrat de message et dis où tout va? (J'espère que c'est aussi simple que cela!) – Vaccano

+0

Puis-je simplement définir OtherData comme DataContract? (Est-ce une mauvaise conception?) – Vaccano

+0

@Vaccano, oui vous pouvez soit utiliser DataContracts ou aller pour le contrôle graned plus fin sur la structure du message en utilisant MessageContracts. Vous devriez pouvoir convertir en utilisant MessageContracts. –

Questions connexes