3

asp.netページからHttpModuleのプロパティにアクセスする方法はありますか?

namespace MyHttpModule
{
    public class Module : IHttpModule
    {
        public string M_Property { get; set; }

        public void Init(HttpApplication context)
        {
4

1 に答える 1

2

ApplicationInstanceからアクティブなモジュールを取得できます。たとえば、BeginRequestに現在のRawUrlを保存するモジュールがあります。

  public class PlainModule : IHttpModule
  {
    private HttpApplication app = null;    
    public string CurrentRequestUrl;

    public void Init(HttpApplication Context)
    {
      this.app = Context;
      Context.BeginRequest += new System.EventHandler(Begin);
    }

    public void Dispose()
    {
    }

    private void Begin(Object Sender, EventArgs e)
    {
      this.CurrentRequestUrl = this.app.Request.RawUrl;
    }
  }

もちろん、モジュールをweb.configに登録する必要があります。

  <system.web>
    <httpModules>
      <add name="PlainModule" type="WebApplication1.PlainModule, WebApplication1"/>
    </httpModules>
  </system.web>

次に、次のように、Web構成に登録された名前を使用してモジュールインスタンスを取得できます。

protected void Page_Load(object sender, EventArgs e)
{
  PlainModule pm = (PlainModule)HttpContext.Current.ApplicationInstance.Modules["PlainModule"];
  Response.Write("Current request URL : "  + pm.CurrentRequestUrl);
}
于 2012-08-14T14:26:19.180 に答える