0

我想通过 HttpModule 处理静态文件 Web 请求,以根据某些策略在我的 CMS 中显示文档。我可以过滤掉一个请求,但是我不知道如何像asp.net那样直接处理这样的请求。

4

1 回答 1

1

这是你要找的吗?假设您在集成管道模式下运行,所有请求都应该在此处通过,因此如果未经授权,您可以终止请求,否则可以正常通过。

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

    public void Init(HttpApplication context)
    {
        context.AuthorizeRequest += context_AuthorizeRequest;
    }

    void context_AuthorizeRequest(object sender, EventArgs e)
    {
        var app = (HttpApplication)sender;

        // Whatever you want to test to see if they are allowed
        // to access this file. I believe the `User` property is
        // populated by this point.
        if (app.Context.Request.QueryString["allow"] == "1")
        {
            return;
        }

        app.Context.Response.StatusCode = 401;
        app.Context.Response.End();
    }
}

<configuration>
  <system.web>
    <httpModules>
      <add name="CustomSecurityModule" type="MyModule1"/>
    </httpModules>
  </system.web>
</configuration>
于 2013-03-22T16:20:25.523 回答