最近将公司的项目用.netcore重写, 服务的http外部接口部分收发消息是DES加解密的, 那么在asp.net core mvc的action处理之前需要加入解密这个步骤.
我第一想到的是用filter的方法来做, 找到了ActionFilter, 重写了OnActionExecuting方法, 确实成功在action执行前拦截了下来, 但是request却是只读的.
这其实可以理解, 因为mvc已经做好了request的formquerystring之类的读取, 再做修改肯定不合适.
那么只能在每个action函数第一行加一个解密方法的调用了吗?
等等, 这有点像mvc的model binding.
于是我查看了asp.net core mvc 自定义model binding的方法, 重写之后, 在action的函数参数声明处使用自定义的model即可.
相关链接:
https://docs.microsoft.com/en-us/aspnet/core/mvc/advanced/custom-model-binding