我想通过HttpModule处理静态文件Web请求,以根据某些策略显示CMS中的文档。我可以过滤掉一个请求,但我不知道如何直接处理这样的请求,就像asp.net应该做的那样。
答案 0 :(得分: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>