0

我们有一个由 4 个页面组成的网站,按以下顺序排列:
Default.aspx
List.aspx
SubmitForm.aspx
Thankyou.aspx

我们使用 IIS URL Rewrite 模块将 PURL 用于登录(默认)页面。所以这个:
www.example.com/Chris123
真的是这样的:
www.example.com/default.aspx ?UID=Chris123

在 SubmitForm.aspx 上,我们有一个带有 PostBackURL 值的提交按钮,它将表单数据发送到 SalesForce.com 的服务器,捕获数据,然后重定向回我们的Thankyou.aspx 页面。

过去,我们没有使用 URL Rewrite 模块,SalesForce 提交工作得很好。但是,现在启用 URL 重写规则后,当用户单击按钮而不是转到 SalesForce 服务器时,它会重定向回表单页面,清除字段并触发所有表单验证。这基本上只是导致表单提交/重定向/表单提交/重定向的循环......

如果我进入 IIS 并禁用用户友好 URL 规则(仅用于 Default.aspx 页面),表单将按预期提交给 SalesForce。重新打开它,表单再次提交给自己。

我没有大量的 URL 重写经验——只是基本的用户友好类型场景。任何关于首先在哪里闲逛的建议将不胜感激。

我们正在运行 Windows Web Server 2008,应用程序是 .NET 4 Web 表单。

4

1 回答 1

0

好的,想通了。

问题最终是 WebResource.axd 被 URL 重写捕获。通过将其添加到规则中来修复它:

<!-- The following condition prevents rule from rewriting requests to .axd files -->
<add input="{URL}" negate="true" pattern="\.axd$" />

我之前读到过,但不认为这是我的问题,因为 PostBackURL 正在转到另一台服务器。但我想这是有道理的,因为 PostBackURL 需要 Javascript 来重定向帖子。r我发现它的唯一原因是因为我的日志文件将“WebResource.axd”捕获为我的 PURL 值,并将表单作为引用者。

这是我找到解决我的问题的实际代码(最后)的页面: http ://www.iis.net/learn/extensions/url-rewrite-module/url-rewriting-for-aspnet-web-形式

于 2013-08-06T13:41:31.783 回答