Применение атрибута к методу службы WCF для доступа к файлам cookie

Есть ли способ применить настраиваемый атрибут к методу службы 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;
    }
}

person sipsorcery    schedule 12.12.2011    source источник


Ответы (1)


Вы можете использовать HttpContext.Current.Request.Cookies[] в методе службы для доступа к файлам cookie. Вам не нужно писать собственный атрибут для его достижения

person Alex Ovechkin    schedule 06.07.2012
comment
Дело в том, что я хочу получить доступ к файлам cookie в атрибуте. Я делаю некоторую пользовательскую логику авторизации в атрибуте, и мне нужно получить доступ к файлам cookie из него. - person sipsorcery; 07.07.2012