当前位置:  开发笔记 > 编程语言 > 正文

使用HttpModule而不是Global.asax

如何解决《使用HttpModule而不是Global.asax》经验,为你挑选了1个好方法。

我如何转换:

<%@ Application Language="C#" %>


对于使用HttpModule的方案?

另外,我可以将Global.asax编写为纯C#而不是使用标签吗?



1> Remco Eissin..:

在自定义模块的init中,您需要检索Session模块并为Start事件添加事件处理程序.

public void Init(HttpApplication context)
{
    context.BeginRequest += new EventHandler(Begin_Request);
    IHttpModule sessionModule = context.Modules["Session"];
    if(sessionModule != null && 
        sessionModule.GetType() == typeof(System.Web.SessionState.SessionStateModule))
    {
        (sessionModule as System.Web.SessionState.SessionStateModule).Start 
          += new EventHandler(CustomHttpModule_Start);
    }
}

另外,我可以编写Global.asax aspure C#而不是使用标签吗?

是的,您可以在Global.asax中添加代码并将内容更改为

<%@ Application Language="C#" CodeBehind="Global.asax.cs" Inherits="Global" %>

您的代码应该继承自System.Web.HttpApplication

public class Global : System.Web.HttpApplication
{
  public Global()   {   }

  void Session_Start(object sender, EventArgs e)
  {
      // Code that runs when a new session is started
  }
}

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有