代码之家  ›  专栏  ›  技术社区  ›  Jack Marchetti

ASP.NET-在不创建新请求的情况下将表单数据发布到单独的URL

  •  0
  • Jack Marchetti  · 技术社区  · 15 年前

    虽然这与其他问题类似,但我一直无法弄清楚,我觉得自己很蠢,不知道怎么做。

    1)我不能使用PASBACKURL属性按钮单击。

    基本上,我需要做的是,当用户单击一个按钮时,我需要将数据发布到一个单独的url。在表单中找不到该数据。我需要在代码后面添加数据程序。

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

    我的问题是,你是怎么做到的?到目前为止,我在网上找不到任何能清楚说明这是怎么做到的东西, 而不创建新的httpwebrequest。

    按以下注释编辑:

    基本上,我们是将我们的成员资格与一个单独的应用程序集成在一起,这在以前是有效的。不幸的是,他们的技术支持没有多大帮助。

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

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

    不过,由于我正在创建一个新的httpwebrequest对象,因此它们端的重定向不起作用。

    我可以在一个查询字符串中完成这一切,但是随着发布的数据量的增加,我想我将超过url字符的限制。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Zhaph - Ben Duguid    15 年前

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

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


    编辑以回应评论

    你能澄清一下你想让用户看到什么吗?

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

    在某个时候,您需要创建一个到第三方站点的新请求,该请求要么通过javascript从客户端浏览器发出,要么通过response.redirect之类的方法,在这种情况下,您只能查询字符串字段,用户将知道他们已经被发送到其他地方,或者在幕后使用httpwebrequest。

    就我个人而言,恐怕我不认为你能做到。

        2
  •  0
  •   Mitchel Sellers    15 年前

    如果用户总是发布到另一个页面,则可以执行以下操作。

    1.)将要添加的信息添加到页面上的隐藏字段中,这样就可以了。 2.)然后修改form对象上的“action”以直接发布到另一页。

    现在取决于实现是否可行

        3
  •  0
  •   Endorf    15 年前

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

    一旦用户提交了主表单,就可以从代码中填充第二个表单的(隐藏的)字段,并在pageload上使用javascript form.submit()提交它(从codebhind插入javascript)。

    当然,只需要响应就更容易了。重定向,相当于从浏览器启动一个get。

    我可以向你指出,邮政变量也可以很容易地操纵用户呢? 这比操纵url更不明显,所以对于非技术用户来说,这里有点慢。

    但是 邮局没有安全和数据保护!