zoukankan      html  css  js  c++  java
  • 页面注入

    前一阶段用spring.net做东西,一直想模拟一下它的页面注入,不清楚它是怎么实现的,懒得看他源码,自己简单写了一个,估计也差不多

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Reflection;
    using System.Data;

    namespace LibertyPortal.CommonTools.CustomHttpModules
    {
        class CustomHttpModules : IHttpModule
        {
            #region IHttpModule 成员
            /// <summary>
            /// 处置由实现 IHttpModule 的模块使用的资源(内存除外)。
            /// </summary>
            public void Dispose()
            {
            }
            /// <summary>
            /// 初始化模块,并使其为处理请求做好准备。
            /// </summary>
            /// <param name="context"></param>
            public void Init(HttpApplication context)
            {
                context.BeginRequest += new EventHandler(context_BeginRequest);

                context.EndRequest += new EventHandler(context_EndRequest);
                context.PreRequestHandlerExecute += new EventHandler(context_PreRequestHandlerExecute);
            }
            #endregion

            /// <summary>
            /// 在 ASP.NET 响应请求时作为 HTTP 执行管线链中的第一个事件发生。
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void context_BeginRequest(object sender, EventArgs e)
            {
                HttpApplication application = (HttpApplication)sender;
                HttpContext context = application.Context;
                HttpResponse Response = context.Response;
                //防止在Iframe的时间Cookie丢失
                Response.AddHeader("P3P", "CP=CAO PSA OUR");
                context.Response.Write("<h1><font color=red>HelloWorldModule: Beginning of Request</font></h1><hr>");
            }
            private void context_PreRequestHandlerExecute(Object source, EventArgs e)
            {
                HttpApplication application = (HttpApplication)source;
                HttpContext context = application.Context;
                System.Web.UI.Page p = context.Handler as System.Web.UI.Page;
                PropertyInfo pi = p.GetType().GetProperty("dt");
                DataTable dt = new DataTable();
                pi.SetValue(p, dt, null);
                object dd = pi.GetValue(p, null);

            }
            private void context_EndRequest(Object source, EventArgs e)
            {
                HttpApplication application = (HttpApplication)source;
                HttpContext context = application.Context;
                context.Response.Write("<hr><h1><font color=red>HelloWorldModule: End of Request</font></h1>");

            }
        }
    }

    页面:

     

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Reflection;

    public partial class HttpHandlerHttpModle_Default : System.Web.UI.Page
    {
        private DataTable _dt;
        public DataTable dt
        {
            get
            {
                return _dt;
            }
            set
            {
                _dt = value;
            }
        }

        protected void Page_Init(object sender, EventArgs e)
        {
       
        }
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void Button1_Click(object sender, EventArgs e)
        {

        }
    }

     Webconfig

      <httpModules>
       <add name="CustomHttpModules" type="LibertyPortal.CommonTools.CustomHttpModules.CustomHttpModules,LibertyPortal.CommonTools"/>
      </httpModules>

  • 相关阅读:
    C# WinForm 创建XML文件方法总结
    VB中的ADO数据对象编程详解[转载]
    01.15 10日沙盘Top20分析
    IPad上做开发——在线B/S开发表单
    沙盘选股失败:延迟性与随机性
    IPad上做开发——在线B/S用户定制型通用列表
    IL动态调试.NET 程序(without pdb files)
    IPad上做开发——在线B/S开发主从表
    01.17 10日沙盘Top20分析
    IIS7下配置WCF的netTcpBinding
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/1350576.html
Copyright © 2011-2022 走看看