我一直在研究IIS7的模块。我想拦截来自特定浏览器的请求。这只是在dev中,但是现在我的代码看起来像这样:
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
namespace MyNamespace
{
class MyModule : IHttpModule
{
#region IHttpModule Members
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.PreRequestHandlerExecute += new EventHandler(OnPreRequestHandlerExecute);
}
#endregion
public void OnPreRequestHandlerExecute(Object source, EventArgs e)
{
HttpApplication app = (HttpApplication)source;
HttpRequest request = app.Context.Request;
string useragent = "AGENT: " + request.Headers["User-Agent"];
throw new HttpException(403, useragent);
// stuff here
}
}
}
我想对此进行测试,但是尽管阅读了有关将其添加到IIS7的NUMEROUS篇文章,我似乎无法使其正常工作。
实施例: http://learn.iis.net/page.aspx/366/developing-iis-70-modules-and-handlers-with-the-net-framework/ http://learn.iis.net/page.aspx/269/how-to-create-a-simple-iis-manager-module/
我有一个强名称,签名的模块,你可以命名。我似乎无法让它显示在IIS的Managed Modules下。
如果在这方面有经验的人可以指出我正确的方向,我将非常感激!代码非常不完整,我不认为它是完美的,但只是让它在IIS7下工作将是一个巨大的进步。
谢谢!
答案 0 :(得分:1)
你可以简单地将MyNameSpace.dll文件放在bin文件夹中,然后在web.config部分中像这样引用它:
<add name="MyModuleName" type="MyNamespace.MyModule, MyNamespace" preCondition="managedHandler" />