Есть ли способ применить настраиваемый атрибут к методу службы WCF, который может получить доступ к заголовку файлов cookie? Служба WCF основана на REST и будет использоваться только через транспорты HTTP.
До сих пор я нашел единственный способ получить атрибут для применения к моим методам службы WCF — реализовать интерфейс IOperationBehavior. С этим я могу, по крайней мере, создать экземпляр своего атрибута и вызвать методы IOperationBehavior, но как мне добраться оттуда куда-нибудь, где я могу получить доступ к HttpContext.Current, чтобы получить файлы cookie?
Мой атрибут:
[AttributeUsage(AttributeTargets.Method)]
public class MyAttribute : Attribute, IOperationBehavior
{
public MyAttribute()
{
int x = 1;
}
void IOperationBehavior.ApplyDispatchBehavior(OperationDescription operationDescription, System.ServiceModel.Dispatcher.DispatchOperation dispatchOperation)
{
dispatchOperation.ParameterInspectors.Add(this);
}
void IOperationBehavior.Validate(OperationDescription operationDescription)
{
var context = HttpContext.Current;
int y = 2;
}
public void AfterCall(string operationName, object[] outputs, object returnValue, object correlationState)
{
var context = HttpContext.Current;
int y = 2;
}
public object BeforeCall(string operationName, object[] inputs)
{
return null;
}
}
Я применяю его к своему сервисному методу, используя:
public class MyService : IMyService
{
[MyAttribute]
public bool IsAlive()
{
return true;
}
}