在ASP.NET中,如何修改POST数据,然后将其重定向/ POST到另一个URL?

时间:2012-03-16 23:15:25

标签: asp.net redirect

我有一个页面以明文形式发送一些POST数据到我写的aspx页面:

firstname: John
lastname: Doe
accountid: 123

我需要获取此POST数据并通过加密算法运行它,因此数据最终会如此:

firstname: AKFJULKHI
lastname: IDKLNZUI
accountid: RIQLKKNIC

编码之后,我需要将其发布到另一个期望此编码数据的aspx页面。我无法修改此页面。本质上,我正在编写一个中间页面,其目的是获取一些明文数据,使用专有算法对其进行编码,并将其传递给另一个需要此加密数据的页面。我意识到这是一个无用的安全功能,因为用户在加密之前就知道数据是什么,但是我无法修改其他页面并且必须坚持使用API​​。

我的问题是,最简单的方法是什么? Response.Redirect会将其转换为GET请求,Server.Transfer不会更改客户端的URL。我可以做一个手动POST请求然后执行Response.Write,但这似乎是一种非常迂回的方式。

2 个答案:

答案 0 :(得分:2)

我想你可能想用一个模块来解决这个问题。 HttpModule拦截请求,可以更改请求,然后请求继续到目标,目标页面不知道请求被修改。,

参考:http://www.codeproject.com/Articles/30907/The-Two-Interceptors-HttpModule-and-HttpHandlers#HttpModuletheeventbasedpreprocessor

答案 1 :(得分:0)

HTTP不支持POST重定向。

相反,您可以呈现一个包含HTML表单的简单页面,其中包含已修改数据的隐藏输入并指向新URL,然后使用Javascript自动提交表单。