将属性应用于WCF服务方法以访问cookie

本文关键字:访问 cookie 方法 服务 属性 应用于 WCF | 更新日期: 2023-09-27 18:17:36

是否有一种方法可以将自定义属性应用于可以访问cookie头的WCF服务方法?WCF服务是基于REST的,并且只会通过HTTP传输被使用。

到目前为止,我找到的将属性应用于WCF服务方法的唯一方法是实现IOperationBehavior接口。有了这个,我至少可以得到我的属性实例化和IOperationBehavior方法被调用,但我如何从那里到某个地方,我可以访问HttpContext。现在是为了得到饼干吗?

我的属性是:

[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;
    }
}

我将它应用到我的service方法中,使用:

public class MyService : IMyService
{
    [MyAttribute]
    public bool IsAlive()
    {
        return true;
    }
}

将属性应用于WCF服务方法以访问cookie

你可以使用HttpContext.Current.Request。Cookies[]在您的服务方法中访问Cookies。您不需要编写自定义属性来实现它