我正在尝试向 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
}
}
