Оно работает. Нам также нужно добавить ссылку на системную сборку System.ServiceModel.Web.

сделал небольшой проект (WCF + REST), и у меня возникла небольшая проблема. Я хочу сделать мой класс авторизации и аутентификации.

Мой класс авторизации:

//validate api key
public class BasicAuthorization : ServiceAuthorizationManager
{
    public override bool CheckAccess(OperationContext operationContext, 
        ref Message message)
    {
        //some code
    }
}

Мой класс аутентификации

// validation user login & password
public class BasicAuthentication : ServiceAuthenticationManager
{
    public override ReadOnlyCollection<IAuthorizationPolicy> Authenticate(
        ReadOnlyCollection<IAuthorizationPolicy> authPolicy, Uri listenUri, 
        ref Message message)
    {
        //some code
    }
}

У меня тоже какой-то конфигурационный файл

<behavior>
  <serviceAuthorization 
      serviceAuthorizationManagerType="WCF.BasicAuthorization, WCF"/>
  <serviceAuthenticationManager 
      serviceAuthenticationManagerType="WCF.BasicAuthentication, WCF"/>
</behavior>

Код в классе не важен - это не проблема.

Моя проблема заключается в том, как получить заголовки из OperationContext или класса сообщений. Как я уже говорил, я делаю это в покое, поэтому я хочу вручную установить заголовок Authorizaion / заголовок www-authenticate, но приложение этого не видит.

Я включаю Fiddler2 и пытаюсь поставить любой заголовок, например:

Content-Type: application/xml
Authorization: Basic bla23rwerfsd3==
User-Agent: Fiddler
Host: localhost:59305

И message.Headers / operationContext.Headers не имеет ни моего заголовка (имеет только другой), ни авторизации, ни Content-Type

Ответы на вопрос(0)

Ваш ответ на вопрос