4

当用户无权执行某些任务时,我想从我的 Asp.Net WebApi 控制器返回 Http 403 错误。

但是,我想对此使用子状态来提供有关错误的更多详细信息以及错误消息。

目前,我得到的是

HTTP/1.1 403 Read access forbidden

但我想看到的是

HTTP/1.1 403.2 Read access forbidden

我目前使用的代码:

    [HttpGet]
    public EnrollmentDetail Details(int id)
    {
        var enrollmentDetail = _context.GetEnrollmentDetail(id);

        if (!enrollmentDetail.R)
        {
            throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.Forbidden)
                {
                    ReasonPhrase = "Read access forbidden"
                });
        }

        return enrollmentDetail;
    }

我在任何地方都找不到有关如何将这些子状态添加到响应中的任何信息。有什么办法可以用内置类来完成吗?如果没有,有没有办法写一个HttpException可以为我做这个的自定义?

4

1 回答 1

0

这是因为子状态不是 HTTP 规范的一部分,不应使用。如果您想发送有关您遇到的问题的更多详细信息,请查看Json-problem

于 2013-06-21T23:49:47.640 回答