我有一個項目運行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