有一种简单的方法用一个简单的Error.json文件替换ASP.NET Web API HTML错误页面吗?

时间:2015-12-02 18:28:06

标签: c# asp.net json asp.net-web-api

我觉得我可能会因为像这样的指南而使事情变得复杂: How to override all standard error pages in WebAPI

我无法让它工作,因为我认为我正在使用的ASP.NET Web API版本已弃用context.Request.CreateErrorInfoResponse()

我要做的就是将HTTP 403 Forbidden显示为~/Error.json

中的单个静态文件

我已经尝试过对我的Web.config文件执行此操作:

  <system.web>
    <customErrors mode="RemoteOnly">
      <error statusCode="403" redirect="~/Error.json" />
    </customErrors>
  </system.web>

我也试过这个:

  <system.web>
    <customErrors mode="On">
      <error statusCode="403" redirect="~/Error.json" />
    </customErrors>
  </system.web>

抛出此异常时似乎没有任何影响:

throw new APIException(HttpStatusCode.Forbidden, new MessageError("foobar"));

在我的应用程序中,只有一种情况会收到Forbidden响应,并且我不希望我的RESTful API在此事件中返回HTML响应。

我该怎么做才能解决这个问题?

我需要这样做的原因是,如果客户试图破解或盗用此Web应用程序,则Web应用程序无效。我想在Startup.cs中完成所有这些操作,如果它可能会使应用程序崩溃并返回错误的json响应,而不是throw new Exception方法默认执行的HTML响应。

0 个答案:

没有答案