从自定义PostSharp属性内部访问请求标头

尼古拉斯

我正在尝试HttpRequestMessage从自定义PostSharp属性内部访问

在我的Web API中,我可以这样做:

string headerText = Request.Headers.GetValues("TestHeader").First();

这似乎在API控制器之外不起作用。

[Serializable]
[AttributeUsage(AttributeTargets.Method)]
public sealed class LogHeaderAttribute : OnMethodBoundaryAspect
{
    public override void OnEntry(MethodExecutionArgs args)
    {
        // Log Web API request header info here
    }
}
尼古拉斯

我发现我可以通过以下方式访问标题:

[Serializable]
[AttributeUsage(AttributeTargets.Method)]
public sealed class LogHeaderAttribute : OnMethodBoundaryAspect
{
    public override void OnEntry(MethodExecutionArgs args)
    {
        ApiController apiController = (ApiController)args.Instance;
        var context = apiController.ControllerContext;
        HttpRequestHeaders headers = context.Request.Headers;

        // Use Web API request header info here
        string headerText = headers.GetValues("MyHeader").First();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章