如何在自定义 HTTP 模块中抛出错误代码?
How to throw error code in Custom HTTP Module?
我正在自定义 HTTP 中编写授权函数Module.This是我的代码:
private bool CheckAuthorization(HttpContext context)
{
string auth = context.Request.Headers["Authorization"];
if (string.IsNullOrEmpty(auth) || auth != "123")
{
context.Response.StatusCode = -404;//HttpStatusCode.MethodNotAllowed;
context.Response.Write("404 Not allowed!");
//webOperationContext.OutgoingResponse.StatusCode = HttpStatusCode.MethodNotAllowed;
}
return true;
}
我的开发环境是:C# + .NET Framwork 4.0 + Visual Studio 2013 + WCF。我的目的是:当检查授权失败时,请求不应该调用WCF 方法,并且 return 一个 404 方法不允许 error.It 现在仍然通过 return 错误 tips.Thank 调用 WCF 方法你!
您可以抛出一个不会被处理的 HttpException 并向浏览器提供必要的错误。
throw new HttpException(404, "HTTP/1.1 404 Unauthorized");
抛出异常将导致请求终止,您的 WCF 方法不应 运行。但是,如果您尝试捕获包装 CheckAuthorization 调用,那么重新抛出 HttpException 很重要。为了让它工作,你不能处理异常,让 ASP.Net 管道处理它。
我正在自定义 HTTP 中编写授权函数Module.This是我的代码:
private bool CheckAuthorization(HttpContext context)
{
string auth = context.Request.Headers["Authorization"];
if (string.IsNullOrEmpty(auth) || auth != "123")
{
context.Response.StatusCode = -404;//HttpStatusCode.MethodNotAllowed;
context.Response.Write("404 Not allowed!");
//webOperationContext.OutgoingResponse.StatusCode = HttpStatusCode.MethodNotAllowed;
}
return true;
}
我的开发环境是:C# + .NET Framwork 4.0 + Visual Studio 2013 + WCF。我的目的是:当检查授权失败时,请求不应该调用WCF 方法,并且 return 一个 404 方法不允许 error.It 现在仍然通过 return 错误 tips.Thank 调用 WCF 方法你!
您可以抛出一个不会被处理的 HttpException 并向浏览器提供必要的错误。
throw new HttpException(404, "HTTP/1.1 404 Unauthorized");
抛出异常将导致请求终止,您的 WCF 方法不应 运行。但是,如果您尝试捕获包装 CheckAuthorization 调用,那么重新抛出 HttpException 很重要。为了让它工作,你不能处理异常,让 ASP.Net 管道处理它。