最近改造老的Asp.Net项目,发现原来很多逻辑在Global.asax中实现,不好维护,为了简化维护,将这些逻辑移动到HttpModule中,具体方法是,首先创建独立的动态库,作为可以独立部署和替换的模块,里面的类实现IHttpModule.比如:
namespace Plat.ISOK.Security.Module
{
public class CheckPermission : IHttpModule
{
public void Dispose()
{
//throw new NotImplementedException();
}
public void Init(HttpApplication context)
{
context.AuthorizeRequest += Context_AuthorizeRequest;
}
private void Context_AuthorizeRequest(object sender, EventArgs e)
{
HttpApplication ha = (HttpApplication)sender;
然后,在Web.config中注册这个模块,如果应用程序池使用经典模式,需要在system.web中使用httpModules注册,如果使用集成模式,需要在system.webserver中,使用modules注册,如下:
<system.webServer>
<modules>
<add name="ISOKPemission" type="Plat.ISOK.Security.Module.CheckPermission,Plat.ISOK.Security.Module"/>
</modules>
</system.webServer>
网友评论