Estoy intentando hacer una autenticación básica en un WCF RequestInterceptor. Estoy usando this article como un comienzo.WCF REST RequestInterceptor authentication
El problema con el que me estoy encontrando es la comunicación entre el interceptor y el servicio. Nada de lo que he intentado parece funcionar. Hasta ahora, he intentado:
- OperationContext.Current
- requestContext.RequestMessage.Properties [HttpRequestMessageProperty.Name] [ "foo"] = Valor
- HttpContext.Current.Request
Pero no importa lo que configuro, parece que no puedo acceder al mismo en el comportamiento del servicio:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class AdvertiserService : ApiServiceBase<AdvertiserDataAccessor>, IAdvertiserService
{
[WebGet(UriTemplate = "")]
public List<Advertiser> GetAdvertisers()
{
var request = HttpContext.Current.Request;
var headers = HttpContext.Current.Request.Headers;
var p = HttpContext.Current.Request.Headers["Principal"];
OperationContext ctx = OperationContext.Current;
}
}
Mi qu son las siguientes:
¿Cómo puedo pasar datos entre el Interceptor y el servicio?
¿Existe alguna manera canónica de pasar información de autenticación entre ellos (tenga en cuenta que la información de autenticación es un UID en la base de datos, no una identidad de Windows)?
Gracias