如题:

.net webapi 采用了Owin的验证机制,另外在Action层之外设置了两次验证

第一次是重写了AuthorizeAttribute,用来验证身份的类,类名为ProtalApiAuth【这个是直接作用于action的,如下图】

Web API Request Content多次读取问题

 

 

第二次是重写了ActionFilterAttribute, 在OnActionExecuting和OnActionExecuted的时候分别记录webapi请求和返回的内容 ,类名为:AppRequestActionFilter 【这个是注册到全局的,见图3】

Web API Request Content多次读取问题

 

 Web API Request Content多次读取问题

 

前两层具体读取body的代码

//读取请求的内容流
var task = context.Request.Content.ReadAsStreamAsync();
string content = "";
using (System.IO.Stream sm = task.Result)
                {
                    if (sm != null)
                    {
                        sm.Seek(0, SeekOrigin.Begin);
                        int len = (int)sm.Length;
                        byte[] inputByts = new byte[len];
                        sm.Read(inputByts, 0, len);
                        sm.Close();
                        content = Encoding.UTF8.GetString(inputByts);
                    }
                }
View Code

相关文章:

  • 2022-12-23
  • 2022-01-06
  • 1970-01-01
  • 2022-12-23
  • 2021-07-17
  • 2022-01-17
  • 2021-10-25
猜你喜欢
  • 2022-12-23
  • 2021-11-04
  • 2021-10-31
  • 2022-12-23
  • 2022-12-23
  • 2021-05-29
  • 2022-12-23
相关资源
相似解决方案