zoukankan      html  css  js  c++  java
  • 使用httpModules做一些事

    httpmodules是http管道处理程序 可以重写接口进行一些在请求到达api接口前做全局处理 

    这是一个过滤关键词的例子

    using System;
    using System.Collections.Generic;
    using System.Collections.Specialized;
    using System.Linq;
    using System.Reflection;
    using System.Web;
    
    namespace WebApplication4
    {
        public class FilterForbiddenWordModule:IHttpModule
        {
            void IHttpModule.Dispose() { }
    
            void IHttpModule.Init(HttpApplication context)
            {
                context.BeginRequest += new EventHandler(OnBeginRequest);
            }
    
            private static void OnBeginRequest(object sender, EventArgs e)
            {
                var request = (sender as HttpApplication).Request;
                ProcessCollection(request.QueryString);
                ProcessCollection(request.Form);
            }
    
            private static void ProcessCollection(NameValueCollection collection)
            {
                var copy = new NameValueCollection();
             //   copy.GetType().GetProperty("IsReadOnly").SetValue(copy, false);
    
                foreach (string key in collection.AllKeys)
                {
                    Array.ForEach(
                        collection.GetValues(key),
                        v => copy.Add(key, ForbiddenWord.Filter(v)));
                }
                typeof(NameObjectCollectionBase).GetProperty("IsReadOnly",BindingFlags.Instance | BindingFlags.NonPublic).SetValue(collection, false);
                collection.Clear();
                collection.Add(copy);
            }
        }
    
        public static class ForbiddenWord
        {
            public static string Filter(string original)
            {
                return original.Replace("关键词", "替换后");
            }
        }
    }

    配置文件加入该项配置 web程序启动后会执行可以注册多个 这是影响全局的配置

  • 相关阅读:
    文字转语音功能
    windows定时计划任务
    写电子合同,爬过的坑,趟过的雷,犯过的错,都是泪
    前端应该如何去认识http
    I/O理解
    观察者模式
    js --代理模式
    js --策略模式
    js --单例模式
    js 单线程 异步
  • 原文地址:https://www.cnblogs.com/ProDoctor/p/7586463.html
Copyright © 2011-2022 走看看