zoukankan      html  css  js  c++  java
  • Action Filter

    代码
    using System.Web;
    using System.Web.Mvc;
    using System.IO;

    namespace MvcApp1.ActionFilters
    {
        
    public class SimpleActionFilterAttribute : ActionFilterAttribute
        {
            
    public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                File.AppendAllText(
    @"f:\ActinoFilter.log", ID + " : OnActionExecuting" + Environment.NewLine );
            }
            
    public override void OnActionExecuted(ActionExecutedContext filterContext)
            {
                File.AppendAllText(
    @"f:\ActinoFilter.log", ID + " : OnActionExecuted" + Environment.NewLine);
            }
            
    public override void OnResultExecuting(ResultExecutingContext filterContext)
            {
                File.AppendAllText(
    @"f:\ActinoFilter.log", ID + " : OnResultExecuting" + Environment.NewLine);
            }
            
    public override void OnResultExecuted(ResultExecutedContext filterContext)
            {
                File.AppendAllText(
    @"f:\ActinoFilter.log", ID + " : OnResultExecuted" + Environment.NewLine);
            }
            
    public int ID { getset; }
        }
    ////////////////////////////////

    using System.Web;
    using System.Web.Mvc;

    namespace MvcApp1.ActionFilters
    {
        
    public class AuthenticationActionFilterAttribute:ActionFilterAttribute
        {
            
    public override void OnActionExecuting(ActionExecutingContext filterContext)
            {
                
    if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
                {
                    filterContext.Result 
    = new RedirectToRouteResult("Default"new System.Web.Routing.RouteValueDictionary(new { action="SignIn"}));
                    
                }
            }
        }
    }

    ////////////////////////////////////////////////////

    using System.Web;
    using System.Web.Mvc;
    using System.IO.Compression;

    namespace MvcApp1.ActionFilters
    {
        
    public class CompressActionFilterAttribute:ActionFilterAttribute
        {
            
    public override void OnResultExecuting(ResultExecutingContext filterContext)
            {
                
    string acceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"].ToLower();
                
    if (string.IsNullOrEmpty(acceptEncoding)) return;

                var response 
    = filterContext.HttpContext.Response;
                
    if (acceptEncoding.Contains("gzip"))        //, deflate
                {
                    response.AddHeader(
    "Content-Encoding""gzip");
                    response.Filter 
    = new GZipStream(response.Filter, CompressionMode.Compress);
                }
                
    else  if (acceptEncoding.Contains("deflate"))        //, deflate
                {
                    response.AddHeader(
    "Content-Encoding""deflate");
                    response.Filter 
    = new DeflateStream(response.Filter, CompressionMode.Compress);
                }
            }
        }

  • 相关阅读:
    微服务基础——厉害了!API网关
    11.11 大促背后的秘密——智能合图
    那些我们对2019技术世界趋势的预测都说准了吗?
    DevOps云翼日志服务实践
    技术沙龙|原来落地AI应用是这么回事儿!
    直击JDD | 京东开启技术服务元年:携手合作伙伴,共创产业未来
    直击JDD | 徐雷:智能化零售,以技术为驱动力的突破路径
    直击JDD | 陈生强:京东数科的底层是数字化操作系统
    干货 | Spark Streaming 和 Flink 详细对比
    持续集成与自动化部署
  • 原文地址:https://www.cnblogs.com/wucg/p/1841665.html
Copyright © 2011-2022 走看看