分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

使用httpModules做一些事

发布时间:2023-09-06 01:13责任编辑:白小东关键词:http

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

使用httpModules做一些事

原文地址:http://www.cnblogs.com/ProDoctor/p/7586463.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved