如何在IHttpModule中处理会话

本文关键字:处理 会话 IHttpModule | 更新日期: 2023-09-27 18:28:33

请参阅下面的代码

public class URLRewriter : IHttpModule {
    public void Dispose() {
    }
    public void Init( HttpApplication context ) {
        context.BeginRequest += new EventHandler( context_BeginRequest );
    }
    void context_BeginRequest( object sender, EventArgs e ) {
                //code to make custom 
                 URLhttpApplication.Context.Server.Transfer( CustomPath );
        }
}

这里我使用IHttpModule进行自定义URL重定向。但在目标页面中设置会话时显示错误。

错误线路代码:

HttpContext.Current.Session[USERADMIN] == null

错误消息:

System.NullReferenceException:对象引用未设置为对象的实例。

如何在IHttpModule中处理会话

您在BeginRequest中请求会话状态,这是在会话状态在应用程序生命周期中可用之前。至少在AcquireRequestState事件之前,您不能使用会话状态。

更改Init以处理AcquireRequestState而不是BeginRequest。