【问题标题】:http module: Request is not availablehttp模块:请求不可用
【发布时间】:2011-09-28 12:02:36
【问题描述】:

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

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

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

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

    }
}

它抛出一个异常“请求在此上下文中不可用”

我做错了什么?

【问题讨论】:

标签: c# asp.net


【解决方案1】:

在初始化阶段,您没有正在进行的请求。您必须订阅事件才能开始请求:

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
}

【讨论】:

  • 感谢这个简洁的答案,肯定比教程长度的解释要好!
猜你喜欢
  • 2018-04-28
  • 1970-01-01
  • 2018-01-05
  • 2017-11-15
  • 1970-01-01
  • 2016-03-18
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多