从Asp.Net WebApi控制器返回HTTP 403子状态

时间:2013-06-21 19:08:25

标签: asp.net-web-api http-status-code-403

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

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

目前,我得到的是

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

1 个答案:

答案 0 :(得分:0)

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