是否可以编写一个IIS URL重写规则来检查HTTP Post的内容?

时间:2010-06-02 21:07:34

标签: c# iis-7 url-rewriting

我需要将一部分功能从遗留的ISAPI dll拆分到另一个解决方案(最有可能是ASP.NET MVC)。 IIS7的URL Rewrite听起来像是这项工作的完美候选人,但事实证明我找不到按照我需要的方式配置规则的方法。我需要编写一个规则来检查特定值的HTTP帖子的内容。

<form method="post" action="legacy_isapi.dll">
  <input name="foo" />
</form>
if (Request.Form["foo"] == "bar")
    Context.RewritePath("/some_other_url/on_the_same_machine/foo/bar");

作为一个概念证明,我能够创建一个IHttpModule来检查context.Request.Form集合,并在存在某些参数时执行重写。我在我的网站上安装了这个模块,它可以工作。

然而,我宁愿扩展现有的URL Rewrite模块,而不是自定义模块,以支持检查HTTP Post的内容作为其规则之一。这可能吗?

1 个答案:

答案 0 :(得分:0)

似乎不可能 - 看起来只检查标题。

http://learn.iis.net/page.aspx/465/url-rewrite-module-configuration-reference/#Rewrite_Rules_Overview

  

您可以检查HTTP标头或服务器变量的某些值

如果您可以从POST切换到GET,则可以检查QUERY_STRING