服务堆栈请求过滤器属性自定义消息

Service Stack Request Filter Attribute custom Message

我正在使用 RequestFilterAttribute 创建一个自定义 Filter 属性来检查 Autentication 等。我使用 401 UnAuthorized Message 响应未验证的登录,对于 Forbiddens,我发送 403 Forbidden。如何使用 401 和 403 消息发送自定义消息,我想发送自定义消息,是否使用该状态描述?还是有其他方法可以让我添加自定义消息?

public override void Execute(IHttpRequest req, IHttpResponse res, object requestDto)
    {


            //Return unauthorized 
            res.StatusCode = (int)HttpStatusCode.Unauthorized;
            res.StatusDescription = "Not Authorized";
            res.EndRequest();


    }

是的,IResponse.StatusDescription 用于更改 HTTP 响应中的状态描述。

如果您想在 HTTP 响应正文中发回更多结构化数据,您仍然可以写入响应,例如这也序列化​​了一个自定义 ErrorResponse DTO:

var errorResponse = new ErrorResponse {
    ResposneStatus = new ResposneStatus {
        ErrorCode = "CustomErrorCode",
        Message = "Custom Message"
    }
};

res.StatusCode = (int)HttpStatusCode.Unauthorized;
res.StatusDescription = "Not Authorized";
res.WriteToResponse(req, errorResponse);