zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    设计师必备:来自顶级设计师的建议清单
    Qt 控制线程的顺序执行(使用QWaitCondition,并且线程类的run函数里记得加exec(),使得线程常驻)
    Qt 模拟鼠标点击(QApplication::sendEvent(ui->pushbutton, &event0);)
    利用Qt开发跨平台APP(二)(iOS,使用Qt5.9,很详细,有截图)
    C# RESTful API
    NET架构
    一个宏实现
    初步了解 Netty
    使用Rabbit MQ消息队列
    NET CORE与Spring Boot
  • 原文地址:https://www.cnblogs.com/XJNB/p/13343127.html
Copyright © 2011-2022 走看看