以下是我们网站的示例回复。
HTTP响应代码为404(未找到)
{ “ Message”:“未找到与请求URI'http://localhost:2425/Prefix/Controller?parameter=param1'相匹配的HTTP资源。”, “ MessageDetail”:“在与请求匹配的控制器'Controller'上未找到任何动作。” }
我们应该能够将HTTP响应修改为403(错误请求),因为用户返回的参数不完整(还有另一个参数,例如parameter2),并且我们还应该将消息详细信息修改为可定制的内容
这可以实现吗?
下面是WebApiConfig.cs中的示例方法
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);
// Web API configuration and services
// Configure Web API to use only bearer token authentication.
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我尝试删除config.MapHttpAttributeRoutes(),但是如果参数不匹配,则应用程序不会进入控制器,因此我可以返回响应。
答案 0 :(得分:0)
您可以创建中间件类,在该中间件类中,您可以在控制器获取之前和执行控制器之后检查和修改HTTP请求数据(参数,标头,路由,返回状态代码结尾等)。 这是a good example的中间件