【问题标题】:WebAPI returning UnAuthorized if missing Header Value如果缺少标头值,WebAPI 返回 UnAuthorized
【发布时间】:2013-05-03 03:50:30
【问题描述】:

使用 APS.NET MVC 4 WebApi

每个请求都必须有一个名为“version”的Header,如果没有或版本太低,我需要向客户端返回一个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);
    }
}

【问题讨论】:

    标签: asp.net asp.net-mvc-4 asp.net-web-api wcf-web-api


    【解决方案1】:

    我不确定这是否是一种可接受的方式,但您可以尝试返回一个只会给您想要的响应的任务:

    // 如果版本

    return new Task<HttpResponseMessage>(() => 
           return Request.CreateResponse(HttpStatusCode.Unauthorized));
    

    【讨论】:

      猜你喜欢
      • 2019-10-03
      • 1970-01-01
      • 2017-11-23
      • 2021-08-03
      • 2016-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多