【问题标题】:Accessing a request header from inside a custom PostSharp attribute从自定义 PostSharp 属性中访问请求标头
【发布时间】:2016-10-08 04:22:48
【问题描述】:

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

在我的 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
    }
}

【问题讨论】:

    标签: c# .net asp.net-mvc asp.net-web-api postsharp


    【解决方案1】:

    我发现我可以通过这种方式访问​​标题:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2022-12-09
      • 2015-10-01
      • 2019-05-03
      • 2017-09-28
      • 2020-03-11
      相关资源
      最近更新 更多