我有一个必须在ActionMethod之前运行的httpModule。我不希望它在图像请求进入时执行。
由于某些原因,我真的需要一个HttpModule并且不能使用ActionFilter
这样做的方法是什么?
public class PostAuthenticateModule : IHttpModule
{
public void Init(HttpApplication app)
{
app.PostAuthenticateRequest += new EventHandler(this.OnEnter);
}
private void OnEnter(object source, EventArgs eventArgs)
{
}
private static void Initialize()
{
}
public void Dispose()
{
}
}
的web.config
<httpModules>
<add type="PostAuthenticateModule.PostAuthenticateModule , PostAuthenticateModule" name="PostAuthenticateModule"/>
</httpModules>
答案 0 :(得分:1)
如果您使用的是IIS7,请查看HttpModule Preconditions。听起来像你想要preCondition="managedHandler"
。
E.g。它可能看起来像这样:
<system.webServer>
<modules>
<remove name="PostAuthenticateModule" />
<add type="PostAuthenticateModule.PostAuthenticateModule , PostAuthenticateModule" name="PostAuthenticateModule" preCondition="managedHandler" />
</modules>
</system.webServer>
HTHS,
查尔斯
答案 1 :(得分:0)
如果它是静态内容类型,只需检查请求并将模块执行短路。对于某些内容类型,您无法有条件地将模块添加到管道中。