Могут ли заголовки HTTP быть связаны с аргументами службы REST WCF? - PullRequest
1 голос
/ 12 октября 2010

У меня есть служба 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; }
}

Я хочу, чтобы UserName и Password свойства были заполнены из определенного HTTPЗаголовки, но не из тела запроса.Как я мог это реализовать?

1 Ответ

2 голосов
/ 13 октября 2010

WCF предлагает несколько точек расширения, которые могут быть полезны для этого сценария. Я предлагаю вам проверить IParameterInspector или IOperationInvoker . Оба могут работать с входными параметрами. Затем вам нужно будет создать IOperationBehavior как атрибут и пометить ваш метод этим атрибутом. Но я ожидаю, что у этого сценария будет еще одна большая проблема. Вы используете WebGet и сложный тип, и у вас нет шаблона Uri, который сопоставлялся бы с параметрами - это невозможно. В операциях WebGet могут использоваться только параметры с базовыми типами, и когда вы создаете такой параметр в операции, он должен быть указан в шаблоне Uri или вызывается исключение.

...