HTTP标头是否可以绑定到REST WCF服务参数?

时间:2010-10-12 19:26:01

标签: wcf rest http-headers wcf-binding

我有一个WCF REST服务:

[ServiceContract]
public IService
{
    [WebGet]
    [OperationContract]
    Data GetData(UserInfo userInfo);
}

UserInfo是一个类:

public class UserInfo
{
    public string UserName { get; set; }
    public string Password { get; set; }
}

我想要从特定的HTTP标头填充UserNamePassword属性,而不是从请求正文填充。我怎么能实现这个呢?

1 个答案:

答案 0 :(得分:2)

WCF提供了一些可扩展性点,可能对此方案有所帮助。我建议您检查IParameterInspectorIOperationInvoker。两者都可以使用输入参数。然后,您必须创建IOperationBehavior作为Attribute,并使用此属性标记您的方法。但我希望这种情况会有一个更大的问题。您正在使用WebGet和复杂类型,并且您没有任何将映射到参数的Uri模板 - 这是不可能的。 WebGet操作只能使用基本类型的参数,当您在操作中创建此类参数时,必须在Uri模板中提及它,否则会触发异常。