我需要将一部分功能从遗留的 ISAPI dll 拆分到另一个解决方案(最有可能是 ASP.NET MVC)。 IIS7 的 URL Rewrite 听起来是这项工作的完美人选,但事实证明我找不到一种方法来按照我需要的方式配置规则。我需要编写一个规则来检查 HTTP post 的内容是否有特定值。
<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 重写模块以支持将 HTTP Post 的内容作为其规则之一进行检查。这可能吗?
最佳答案
似乎不可能 - 看起来只检查了 header 。
you can check for certain values of HTTP headers or server variables
如果可以从 POST 切换到 GET,则可以检查 QUERY_STRING
关于c# - 是否可以编写一个 IIS URL 重写规则来检查 HTTP Post 的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2961604/