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程序启动后会执行可以注册多个 这是影响全局的配置

  • 相关阅读:
    ios xib或storyBoard的那些小方法
    ios pod库更新到1.0或1.0.1之正确修改podfile文件
    ios UILabel在storyBoard或xib中如何在每行文字不显示完就换行
    ios NSThred多线程简单使用
    Xcode升级插件失效,与添加插件不小心点击Skip Bundle解决办法
    ios app打ipa包
    极光推送碰到的问题
    ios 更新约束
    ios 缺少合规证明
    Path Sum II
  • 原文地址:https://www.cnblogs.com/ProDoctor/p/7586463.html
Copyright © 2011-2022 走看看