http模块:请求不可用

fre*_*hie 4 c# asp.net

我正在创建一个http模块,我想检查一个请求是否来自经过身份验证的用户,如果不是,则重定向到登录页面.

我在web.config文件中注册了该模块,并且我有以下代码抛出异常:

public class IsAuthModule : IHttpModule
{
    public void Dispose() { }

    public void Init(HttpApplication TheApp)
    {
        var TheRequest = TheApp.Request;

    }
}
Run Code Online (Sandbox Code Playgroud)

它抛出一个异常,说"在这种情况下请求不可用"

我究竟做错了什么?

ono*_*nof 6

在Init阶段,您没有正在进行的请求.您必须订阅事件以开始请求:

public void Init(HttpApplication TheApp)
{
    TheApp.BeginRequest += Application_BeginRequest;

    // End Request handler
    //application.EndRequest += Application_EndRequest;
}

private void Application_BeginRequest(Object source, EventArgs e) 
{
  // do something
}
Run Code Online (Sandbox Code Playgroud)