【问题标题】:ActionFilter Return Http Status Code with MessageActionFilter 返回带有消息的 Http 状态码
【发布时间】:2020-11-24 15:37:09
【问题描述】:

我有一个ActionFilterAttribute,我正在其中检查有效的许可证。我想返回一个 401 错误和一条消息。现在,我有以下实现:

public override void OnActionExecuting(ActionExecutingContext context) {
    ...
    // return errror (short-circuit)
    context.Result = new StatusCodeResult(401);
    return;
}

我怎样才能传递消息?在我的控制器中,我会执行以下操作:

return Unauthorized("Some error message");

【问题讨论】:

    标签: c# asp.net-core asp.net-core-mvc


    【解决方案1】:

    GitHub 上提供了 ASP.NET Core 源代码,这意味着我们可以看到控制器中使用的 Unauthorized 方法的实现如下所示 (source):

    public virtual UnauthorizedObjectResult Unauthorized([ActionResultObjectValue] object value)
        => new UnauthorizedObjectResult(value);
    

    您可以在您的 OnActionExecuting 实现中模拟它,如下所示:

    context.Result = new UnauthorizedObjectResult("Some error message");
    

    【讨论】:

      猜你喜欢
      • 2012-04-23
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多