我想通过 HttpModule 处理静态文件 Web 请求,以根据某些策略在我的 CMS 中显示文档。我可以过滤掉一个请求,但是我不知道如何像asp.net那样直接处理这样的请求。
问问题
2108 次
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 回答