asp.netページからHttpModuleのプロパティにアクセスする方法はありますか?
namespace MyHttpModule
{
public class Module : IHttpModule
{
public string M_Property { get; set; }
public void Init(HttpApplication context)
{
asp.netページからHttpModuleのプロパティにアクセスする方法はありますか?
namespace MyHttpModule
{
public class Module : IHttpModule
{
public string M_Property { get; set; }
public void Init(HttpApplication context)
{
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);
}