我有一個SimplaKeyAuthorizeFilter
,在filter
,將在APPHOST扔401
ServiceStack如何在ExceptionHandler中拋出真正的httpstatuscode?
public SimpleKeyAuthorize(IHttpRequest req, IHttpResponse res, object obj, bool isDebugMode){
throw new UnauthorizedAccessException("lack sign info!");
}
:
this.ExceptionHandler = (httpReq, httpRes, operationName, ex) =>{
DtoUtils.CreateErrorResponse(httpReq, ex, new ResponseStatus() { ErrorCode = ex.ToErrorCode(), Message = ex.Message });
httpRes.Write(ex.ToErrorCode());
httpRes.EndRequest(skipHeaders:false);
};
........
this.RequestFilters.Add((req,res,obj)=>{
new SimpleKeyAuthorize(req,res,obj,false);
});
但是當我撥打的服務,httpstatuscode是200,不是401,爲什麼呢?
HTTP/1.1 200 OK
的Cache-Control:私人
的Content-Type:(爲什麼不是401?)的text/html;字符集= UTF-8
服務器:Microsoft-IIS/7.5
X-ASPNET-版本:4.0.30319
X供電,通過:ASP.NET
日期:週五, 2014年3月14日5點56分三十○秒GMT
的Content-Length:27
UnauthorizedAccessException