ASP.Net 过滤器

授权过滤器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
using WebApplication17.Models;
using Newtonsoft.Json;
using System.Net.Http;

namespace WebApplication17.Models
{
    public class MyAuthrizeAttribute:AuthorizeAttribute
    {
        public override void OnAuthorization(HttpActionContext actionContext)
        {
            //base.OnAuthorization(actionContext);
            if (actionContext.Request.Headers.Contains("BWAUTH"))
            {
                var headers = actionContext.Request.Headers.GetValues("BWAUTH");
                JWTHelper helper = new JWTHelper();
                string playload = helper.GetPayload(headers.FirstOrDefault());
                UserInfo user = JsonConvert.DeserializeObject<UserInfo>(playload);
                actionContext.ControllerContext.RouteData.Values.Add("User", user);

            }
            else
            {
                var msg = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.OK);
                BWActionResult result = new BWActionResult() { Code = 1, Msg = "未认证", Data = null };
                msg.Content = new StringContent(JsonConvert.SerializeObject(result));
                actionContext.Response = msg;

            }
        }
    }
}
View Code

结果过滤器

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http.Filters;
using System.Net.Http;
using Newtonsoft.Json;

namespace WebApplication17.Models
{
    public class BWActionFilterAttribute:ActionFilterAttribute
    {
        public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            var result =   actionExecutedContext.ActionContext.Response.Content.ReadAsAsync<object>().Result;
            BWActionResult data = new BWActionResult() { Code = 0, Msg = "Ok", Data = result };
            actionExecutedContext.Response.Content = new StringContent( JsonConvert.SerializeObject(data), System.Text.Encoding.UTF8,"application/json" );
        }
    }
}
View Code

 

posted @ 2020-07-20 07:55  我是一只快乐的码农  阅读(127)  评论(0编辑  收藏  举报