Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将属性应用于WCF服务方法以访问Cookie_C#_Wcf_Custom Attributes - Fatal编程技术网

C# 将属性应用于WCF服务方法以访问Cookie

C# 将属性应用于WCF服务方法以访问Cookie,c#,wcf,custom-attributes,C#,Wcf,Custom Attributes,有没有一种方法可以将自定义属性应用于可以访问cookie头的WCF服务方法?WCF服务是基于REST的,只能通过HTTP传输使用 到目前为止,我发现获得应用于WCF服务方法的属性的唯一方法是实现IOperationBehavior接口。这样,我至少可以实例化我的属性并调用IOperationBehavior方法,但如何从那里访问HttpContext.Current以获取Cookie 我的属性是: [AttributeUsage(AttributeTargets.Method)] public

有没有一种方法可以将自定义属性应用于可以访问cookie头的WCF服务方法?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;
    }
}

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

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

关键是我想访问属性中的cookies。我在属性中做了一些自定义授权逻辑,需要从属性中访问cookies。关键是我想访问属性中的cookies。我在属性中执行一些自定义授权逻辑,需要从中访问cookie。