WebApi认证刷选器获取Post参数
使用webapi再所难免会遇到认证需求,毕竟没有认证的服务安全隐患太大。
我们在webapi中进行认证基本上都是新增一个刷选器,继承AuthorizeAttribute。继承后需要重写HandleUnauthorizedRequest方法实现拦截上下文,拦截后可对本次请求进行验证。
如果你的webapi认证秘钥是通过参数进行则需要将参数取出来进行比较,比较通过则认证通过,否则返回401。
我在写的时候发现get方式很简单,因为参数是直接在url后,截取下就ok了,但是post方式则取不到参数,在网上找了好久发现可以通过以下代码截取post的参数:
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
    base.HandleUnauthorizedRequest(actionContext);
    HttpContent content = actionContext.Request.Content;
    //执行该句,会将action的参数实体置为空
    Task<JObject> task = content.ReadAsAsync<JObject>();
    var result = task.Result;
    if (!data.CheckSign(model.access_secret, task.Result))
    {
        return false;
    }
}
    "唯有高屋建瓴,方可水到渠成"
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号