我有一个项目运行ASP.Net WebApi在自我托管的配置,我使用ActionFilterAttribute
类作为过滤器的一些安全检查和ExceptionFilterAttribute
作为异常处理类。错误处理在Web Api自我托管服务器的ActionFilterAttribute
当我在HttpResponseException
类型的ApiController
中发生异常时,ExceptionFilterAttribute
类正如预期的那样被忽略。
的问题是,当我在ActionFilterAttribute
它是类型的安全过滤器提高HttpResponseException
类型的异常由ExceptionFilterAttribute
类抓获。
当调试我已经发现该异常正在改变到
处理HTTP请求的导致异常。有关详细信息,请参阅 例外,此 例外的'响应'属性返回的HTTP响应。
我该怎么做才能防止这种行为。
'公共类SecureApiAccessFilter:ActionFilterAttribute { 公共覆盖无效OnActionExecuting(HttpActionContext ActionContext中) {如果(cookie_expired(actionContext.Request)){回报抛出新HttpResponseException(requestMessage.CreateErrorResponse(HttpStatusCode.Unauthorized, “会话超时” ));}' – 2013-02-26 05:29:34
感谢您的回复,它像一个魅力一样工作,我用'actionContext.Response = requestMessage.CreateErrorResponse(HttpStatusCode.Unauthorized,“Session timed out”)替换了throw;'' – 2013-02-26 05:36:05