首页 > 解决方案 > 从带有队列输出的 Azure 函数返回 403 状态码

问题描述

我有以下函数将项目添加到队列中。是否有返回其他状态代码然后 500 和 200?我有一个案例,我检查调用者是否可以访问端点,如果没有,我想返回 403。

[FunctionName("AddToQueue")]
[return: Queue("queue")]
public async Task<PushRequestMessage> AddToQueue(
    [HttpTrigger(AuthorizationLevel.Function, "post", Route = "")] HttpRequest req,
    ILogger log)
{
    if (!_accessRights.HasInternalAccess(req))
    {
        // return 403
    }

    return new Message()
    {
        Title = "Hello"  
    };
}

标签: azure-functions

解决方案


你可以抛出HttpResponseException这样的:

[FunctionName("AddToQueue")]
[return: Queue("queue")]
public async Task<PushRequestMessage> AddToQueue(
    [HttpTrigger(AuthorizationLevel.Function, "post", Route = "")] HttpRequest req,
    ILogger log)
{
    if (!_accessRights.HasInternalAccess(req))
    {
        throw new HttpResponseException(HttpStatusCode.Forbidden);
    }

    return new Message()
    {
        Title = "Hello"  
    };
}

推荐阅读