【问题标题】:Apply an attribute to a WCF service method to access Cookies将属性应用于 WCF 服务方法以访问 Cookie
【发布时间】:2011-12-12 04:50:40
【问题描述】:

有没有办法将自定义属性应用于可以访问 Cookies 标头的 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;
    }
}

【问题讨论】:

    标签: c# wcf custom-attributes


    【解决方案1】:

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

    【讨论】:

    • 重点是我想访问一个属性中的cookies。我在属性中做了一些自定义授权逻辑,需要从中访问 c​​ookie。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2020-05-14
    • 2015-12-26
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多