.NET ActionFilterAttribute等

public override void OnException(HttpActionExecutedContext actionExecutedContext)
{
//加LOG actionExecutedContext.Exception

//2.返回调用方具体的异常信息
if (actionExecutedContext.Exception is NotImplementedException)
{
actionExecutedContext.Response = new HttpResponseMessage(HttpStatusCode.NotImplemented);
}
else if (actionExecutedContext.Exception is TimeoutException)
{
actionExecutedContext.Response = new HttpResponseMessage(HttpStatusCode.RequestTimeout);
}
//.....这里可以根据项目需要返回到客户端特定的状态码。如果找不到相应的异常,统一返回服务端错误500
else
{
actionExecutedContext.Response = new HttpResponseMessage(HttpStatusCode.InternalServerError);
}

base.OnException(actionExecutedContext);
}

 

public class TokenAuthAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
base.OnActionExecuting(actionContext);

//POST的数据
using (Stream stream = actionContext.Request.Content.ReadAsStreamAsync().Result)
{
if (stream.Length > 0)
{
stream.Position = 0;
string data = string.Empty;
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
data = reader.ReadToEnd();
}
//加LOG
}
}

object token = null;
actionContext.ActionArguments.TryGetValue("token", out token);
//string token = string.Concat(HttpContext.Current.Request.Form["token"]);
ServiceK3Result result = new ServiceK3Result();
if (string.Concat(token).Equals("a"))
{
result.code = "401";
result.message = "IP受限制,请联系接口管理员!";
result.redirect = "";
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized, JsonHelper.ObjectToJsonString(result));
}
}

public async override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
base.OnActionExecuted(actionExecutedContext);
//加结束LOG
}

}

posted on 2017-05-05 09:46  yufan27209 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/yufan27209/p/6811407.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值