ASP.NET Core6 Filter中获取Body中的参数

   [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
    public class MyFilterAttribute : Attribute, IAsyncAuthorizationFilter
    {
        private readonly IConfiguration configuration;

        public MyFilterAttribute(IConfiguration configuration)
        {
            this.configuration = configuration;
        }
        public async Task OnAuthorizationAsync(AuthorizationFilterContext context)
        {
            var request = context.HttpContext.Request;
          
       //开启多次读取body流 request.EnableBuffering();
      //leaveOpen:true标识StreamReader释放时不会自动关闭流   
using var sr = new StreamReader(request.Body, leaveOpen: true, encoding: Encoding.UTF8);
var paramJson = await sr.ReadToEndAsync();
       //Action中可再次读取流 request.Body.Seek(
0, SeekOrigin.Begin); } }
作者: jamesbing
提示: 欢迎转载,但是必须保留本文的署名 jamesbing (包含链接)
原文地址:https://www.cnblogs.com/gaobing/p/15674840.html