Asp.net - 将表单数据发布到单独的URL而不创建新的请求

时间:2009-09-03 14:30:53

标签: asp.net forms httpwebrequest

虽然这与其他问题类似,但我一直无法弄清楚这一点,我不知道该怎么做就感到愚蠢。

1)我无法使用PostbackURL属性进行按钮单击。

基本上我需要做的是,当用户点击按钮时,我需要将数据发布到单独的URL。表格中未找到该数据。我需要在后面的代码中添加programmaticaly数据。

因此用户可以点击“发送”。然后我会将用户的电子邮件,名字,姓氏添加到我假设的namedvaluecollection中,然后将其发布到某个URL。

我的问题是,你是怎么做到的?到目前为止,我一直无法找到任何在线内容,明确说明如何完成,而不创建新的HttpWebRequest。

以下编辑评论:

基本上我们正在将我们的会员资格与一个单独的应用程序集成,而且之前已经有效。不幸的是,他们的技术支持并没有多大帮助。

基本上,用户在他们的网站上并尝试做一些需要您登录的事情。

用户被重定向到我的登录页面。 用户输入凭据。 如果用户进行身份验证,我会将他们的信息(姓名,电子邮件等)发布到特定的URL。该URL将在其末端创建用户(如果它们不存在)和/或将它们重定向到他们第一次尝试访问的任何URL。

我有这个工作,但是因为我正在创建一个新的HttpWebRequest对象,所以它们端的重定向不起作用。

我可以在查询字符串中执行此操作,但是在发布的数据量方面,我认为我将超出URL字符限制。

3 个答案:

答案 0 :(得分:1)

您可以查看Server.Transfer方法。这将(在服务器上,而不是客户端)将所有执行转移到新页面,包括当前表单和查询字符串集合,并将该页面的结果发送回客户端浏览器。

然而,阅读问题的最后部分意味着您可能没有转移到服务器上的页面,不是吗?在这种情况下,这可能不适合你。


编辑以回复评论

您能否从您的角度阐明您希望用户查看的内容?

  • 他们在 www.example.com/someform.aspx 上,他们填写表格,然后按提交。
  • 表单被提交回服务器(someform.aspx),一些处理发生在服务器端,然后原始表单详细信息以及一些其他字段被发布到 www.someotherserver.com/anotherform.xxx
  • 此时用户应该展示什么? someotherserver.com上的页面结果,或服务器上的其他内容?

在某些时候,您需要向第三方网站创建一个新请求 - 要么是通过JavaScript从客户端浏览器到Response.Redirect,在这种情况下,您只能查询-string字段,用户将知道他们已经被发送到其他地方,或者使用HttpWebRequest在幕后发送。

就我个人而言,我只是不认为你可以如何做到我害怕。

答案 1 :(得分:0)

如果用户始终发布到其他页面,您可以执行以下操作。

1。)将要添加的信息添加到页面上的隐藏字段中,就像那里一样。 2.)然后修改表单对象上的“Action”以直接发布到其他页面。

现在取决于可能有​​效或无效的实施

答案 2 :(得分:0)

制作第二个表单,其中postbackurl设置为目标站点。这可能是另一个页面,或同一页面中隐藏的第二个表单。

用户提交主表单后,从代码中填写第二个表单的(隐藏)字段,并在pageload上使用javascript form.submit()提交(从代码隐藏中插入javascript)。

当然,只有Response.Redirect更容易,这相当于从浏览器启动GET。

我是否可以指出用户也可以轻松操作POST变量? 它不像操纵URL那么明显,因此对于非技术用户来说这里有点放缓。

在POST中没有安全性且没有数据保护!