【发布时间】:2021-04-26 15:34:18
【问题描述】:
我正在向控制器发送 AES 加密请求正文,以下是示例:
(using crypto-js)
{body: "U2FsdGVk186Jj7LySqT966qTdpQZwiR+wR0GjYqBzR4ouFAqP8Dz8UPPTv"}
我已经创建了动作过滤器,所以无论何时发布请求,我都可以在动作过滤器中解密请求,而不是将解密后的请求传递给所需的控制器。
解密后请求:
{Name: "admin123" }
那么如何在动作过滤器中获取加密的请求正文?以及如何将解密后的请求正文传递给控制器
我在 ASP.NET 核心 StreamReader 中尝试过 WEB API,但它返回一个空字符串
我想将解密后的请求正文传递给控制器
过滤器
public void OnActionExecuting(ActionExecutingContext context)
{
var req = context.HttpContext.Request;
using (StreamReader reader = new StreamReader(req.Body, Encoding.UTF8, true, 1024, true))
{
bodyStr = reader.ReadToEnd();
}
req.Body.Position = 0;
}
控制器
[HttpPost("[action]")]
public async Task<string> MyControllerName(InfoReq info)
{
}
类
public class InfoReq
{
public string Name{ get; set; }
}
【问题讨论】:
标签: c# asp.net-core asp.net-core-webapi