我使用IRewriteProvider
interface编写了自定义重写提供程序,并将其安装在IIS中。它工作正常,但我需要访问请求的内容以及URL。 newsgroup posting表示我应该能够访问HttpContext.Current
,但在我的测试中,它显示为 null 。
有没有办法从重写提供程序访问请求内容?
答案 0 :(得分:1)
它很可能是null,因为它从未处理任何上下文。如果您想根据内容修改网址,则应在应用程序中实现自定义IHttpModule。
答案 1 :(得分:0)
用于重写URL的IHttpModule类...
public class UrlRewriteModule : IHttpModule
{
public void Init(HttpApplication context)
{
try
{
context.BeginRequest += new EventHandler(context_BeginRequest);
context.EndRequest += new EventHandler(context_EndRequest);
}
catch (Exception exc)
{
...special logging of exc...
}
}
void context_BeginRequest(object sender, EventArgs e)
{
string fullOrigionalpath = Request.Url.ToString();
Context.RewritePath("...whatever you want...");
}
}
和web.config ......
<configuration>
<system.web>
<httpModules>
<add name="UrlRewriteModule" type="UrlRewriteModule"/>
</httpModules>