WCF:使用消息合同制作肥皂标题

时间:2010-04-30 19:09:06

标签: c# visual-studio-2008 wcf

我需要在我的网络服务中添加一个soap标头。我打算用它来验证我的客户端(Windows Mobile Devices)。

我找到了这个链接:http://www.c-sharpcorner.com/UploadFile/rog_21/soapheaders05172007120046PM/soapheaders.aspx

这正是我想要做的。但它不是为WCF编写的。

我做了一些研究,我似乎被number of options瘫痪了。

我基本上想在我的soap对象中添加一个简单的标题,它将是一个用户名和密码。客户端不使用WCF,因此soap标头只需要是普通的soap标头。

任何示例代码或正确方向推都都会受到赞赏。

2 个答案:

答案 0 :(得分:3)

使用MessageContract

而不是定义DataContract
[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;}
  ...
}

答案 1 :(得分:0)

如果必须仅传递用户名paaword并使用自定义UserNamePasswordValidator作为可插入服务行为,则还可以在SOAP标头中使用UsernameToken。 http://msdn.microsoft.com/en-us/library/aa702565.aspx