c# - 无论如何在请求主体绑定到asp.net web api 2中的控制器操作方法之前修改请求主体
问题描述
我正在尝试将加密请求发送到 asp.net web api,并希望 web api 在绑定到控制器操作方法之前拦截请求并解密或修改它。
任何帮助将不胜感激。
解决方案
您可以做的是编写自定义过滤器。由于您想在绑定之前解码正文内容,因此您必须使用 AuthorizeAttribute。
public class DecryptRequestContent : System.Web.Http.AuthorizeAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
var requestContent = actionContext.Request.Content;
var newContent = Decryption (requestContent);
actionContext.Request.Content = newContent;
}
}
之后,您将不得不使用此过滤器来装饰您的 API,如下所示:
public class SomeController : ApiController
{
[DecryptRequestContent]
public void SomeMethod(DataModel model)
{
// implementation goes here
}
}
推荐阅读
- php - 在 PHP 中从数组创建具有动态分组标题的 CSV
- c# - 取消令牌注入
- git - 如何列出所有 Git 子模块的 URL?
- c# - 在Entity Framework中通过id查询相关实体
- android - 如何旋转图像视图并在旋转时更改其上的图像?
- amazon-web-services - 使用 npx 无服务器更改区域以在 AWS CloudFront 上部署
- php - PHP 管理器 - 由于 32 位处理器,安装失败
- angular - Angular 谷歌地图 HeatmapLayer 未定义
- amazon-web-services - 如何让 k8s Pod(由 Jenkins 生成)使用服务账户 IAM 角色访问 AWS 资源
- python - 我的 Django 项目无法导入快捷方式(Pylint 导入错误)