Я бы сделал небольшой проект (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