我正在自定义HTTP模块中编写授权功能.这是我的代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
我的开发环境是:C#+ .NET Framwork 4.0 + Visual Studio 2013 + WCF.我的目的是:当检查授权失败时,请求不应该调用WCF方法,并返回404方法不允许错误.它仍然调用WCF方法现在通过返回错误提示.谢谢!
您可以抛出一个无法处理的HttpException,并向浏览器提供必要的错误.
throw new HttpException(404, "HTTP/1.1 404 Unauthorized");
Run Code Online (Sandbox Code Playgroud)
抛出异常将导致请求终止,并且您的WCF方法不应运行.但是,如果你有一个try catch包装CheckAuthorization调用,那么重新抛出HttpException很重要.为了使它工作,你无法处理异常,让ASP.Net管道处理它.
归档时间: |
|
查看次数: |
944 次 |
最近记录: |