Cabeçalhos no OperationContext
Eu faria um pequeno projeto (WCF + REST) e tenho um pequeno problema. Quero fazer minha classe de autorização e autenticação.
Minha classe de autorização:
//validate api key
public class BasicAuthorization : ServiceAuthorizationManager
{
public override bool CheckAccess(OperationContext operationContext,
ref Message message)
{
//some code
}
}
Minha classe de autenticação
// validation user login & password
public class BasicAuthentication : ServiceAuthenticationManager
{
public override ReadOnlyCollection<IAuthorizationPolicy> Authenticate(
ReadOnlyCollection<IAuthorizationPolicy> authPolicy, Uri listenUri,
ref Message message)
{
//some code
}
}
Eu também tenho algum arquivo de configuração
<behavior>
<serviceAuthorization
serviceAuthorizationManagerType="WCF.BasicAuthorization, WCF"/>
<serviceAuthenticationManager
serviceAuthenticationManagerType="WCF.BasicAuthentication, WCF"/>
</behavior>
O código na classe não é importante - não é um problema.
Meu problema é como obter cabeçalhos de operationContext ou classe de mensagem. Como eu digo antes, eu faço isso em repouso, então eu quero o cabeçalho de Autorização definido manualmente / cabeçalho www-authenticate, mas o aplicativo não o vê.
Eu ligo o Fiddler2 e tento colocar qualquer cabeçalho, por exemplo:
Content-Type: application/xml
Authorization: Basic bla23rwerfsd3==
User-Agent: Fiddler
Host: localhost:59305
E a message.Headers / operationContext.Headers não possui nenhum cabeçalho meu (possui apenas outro), nenhuma autorização, nenhum tipo de conteúdo