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

标签 c# iis-7 url-rewriting

我需要将一部分功能从遗留的 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 。

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

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/

相关文章:

c# - 格式错误的引用元素

iis - IIS7.5 64bit 一次可以处理每个逻辑 CPU 多少个线程?

asp.net - 在asp.net中使用表单例份验证时,是否可以使用iis 7来管理用户

c# - 以编程方式创建 IIS7 虚拟目录

asp.net - 带有 %3D 的 URL 链接的 IIS URL 重写

c# - 如何使用子页面的 javascript 调用父页面的 TextChanged 事件?

c# - 异步提交或回滚事务范围

c# - 为什么 Controller 首先在 ASP.NET MVC 中运行?

php - 如何在 CodeIgniter 中添加多域支持?

php - .htaccess URL 重写不适用于 "?"符号作为数据