使用APS.NET MVC 4 WebApi
每个请求都必须有一个名为“版本”的标题,如果没有或版本太低,我需要向客户端返回 UnAuthorized 值。我不确定如何将其作为回复发送。
在我的 BaseApiController 中,我有:
public abstract class BaseApiController : ApiController
{
public override System.Threading.Tasks.Task<System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Web.Http.Controllers.HttpControllerContext controllerContext, System.Threading.CancellationToken cancellationToken)
{
var versionText = controllerContext.Request.Headers.GetValues("version").FirstOrDefault();
if(!string.IsNullOrEmpty(versionText))
int.TryParse(versionText, out _version);
***HERE*** If _version <1 then return UnAuthorized ???? ****
return base.ExecuteAsync(controllerContext, cancellationToken);
}
}
答案 0 :(得分:0)
我不确定这是否是一种可接受的方式,但您可以尝试返回一个只会给您所需响应的任务:
//如果版本&lt; 1
return new Task<HttpResponseMessage>(() =>
return Request.CreateResponse(HttpStatusCode.Unauthorized));