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

最新文章

  1. mysql索引 (校验规则引发的血案)
  2. tomcat7 配置
  3. divmod(a,b)函数是实现a除以b,然后返回商与余数的元组、eval可以执行一个字符串形式的表达式、exec语句用来执行储存在字符串或文件中的Python语句
  4. switch语句下的变量声明和定义
  5. LeetCode124:Binary Tree Maximum Path Sum
  6. maven 仓库地址:
  7. json-encode()怎么进行解码呢?
  8. oracle的基本查询~下
  9. linux上nagios安装完整版
  10. 【免费】iPhone上最好用的短信群发软件: 高速短信4.1
  11. ASP.NET core1.0 EF MYSQL搭建中碰到几个问题记录
  12. ERROR 1698 (28000): Access denied for user 'root'@'localhost'
  13. javascript中的自定义属性
  14. python 集成cython && push 测试pip 仓库
  15. 第二十二天 logging hashlib re 模块
  16. 关于公众平台接口不再支持HTTP方式调用的公告
  17. VS2015+Opencv3.2配置(一次配好)
  18. (网页)Uncaught ReferenceError: pageImport is not defined
  19. iOS11 适配
  20. Python数据结构:栈 队列

热门文章

  1. 【最短路】【spfa】CDOJ1633 去年春恨却来时,落花人独立,微雨燕双飞
  2. [BalkanOI2016]Lefkaritika
  3. 20172333 2017-2018-2 《Java程序设计》第9周学习总结
  4. 【centOS】【xshell】xshell连接虚拟机上的centOS,操作途中突然断开连接,报错:connect closed by foreign host
  5. WebSocket 是什么原理?为什么可以实现持久连接?(转载)
  6. 什么是webview
  7. [Ubuntu Setup] Ubuntu 13.04 安装 ia32-libs
  8. iOS:iOS开发系列–打造自己的“美图秀秀”(下)
  9. CMakeFile命令之file
  10. Nodejs全站开发学习系列 & 深入浅出Node学习笔记 & Spider抓取