Skip to main content
 首页 » 编程设计

c#之在asp.net web api 2中绑定(bind)到 Controller 操作方法之前是否有修改请求体的方法

2024年02月04日37lyhabc

我正在尝试向 asp.net web api 发送加密请求,并希望 web api 拦截请求并在它绑定(bind)到 Controller 操作方法之前解密或修改它。

任何帮助将不胜感激。

请您参考如下方法:

您可以做的是编写您的自定义过滤器。由于您想在绑定(bind)之前解码正文内容,因此您必须使用 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 
    } 
}