Заголовок обновления службы WCF REST - PullRequest
0 голосов
/ 21 января 2011

Используя RequestInterceptor, можно извлечь заголовки HTTP из запроса и выполнить их обработку. Можно также обновить ответ. Однако есть ли способ обновить и / или вставить заголовки HTTP в сам запрос, чтобы последующие процессоры (например, перехватчики, менеджеры авторизации)?

Ответы [ 2 ]

1 голос
/ 21 января 2011

Вы смотрели на http://wcf.codeplex.com, новый стек HTTP имеет модель конвейерной передачи, которая позволяет вам делать все подобные вещи.

1 голос
/ 21 января 2011

WCF имеет лот точек расширения для таких вещей.Вероятно, вам нужно нестандартное поведение, которое реализует IDispatchMessageInspector.

Создайте класс, который выглядит следующим образом:

public class MyCustomBehavior : IDispatchMessageInspector, IEndpointBehavior
{
    public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
    {
        //here you can work with request.Headers.
        return null;
    }

    public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
    {
        endpointDispatcher.DispatchRuntime.MessageInspectors.Add(this);
    }

    //there are a bunch of other methods needed
    //but you can leave their implementations empty.
    //...
}

Затем вы можете программно добавить свое пользовательское поведение в конечную точку службы перед тем, как открыть службу:

host.Description.Endpoints[0].Behaviors.Add(new WcfService2.MyCustomBehavior());

У Паоло Пиалорси есть хороший учебник , который касается написания сообщений инспекторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...