Asp.net 我可以重新发布或携带POST数据吗(如果可以,我可以使用重定向吗?)

Asp.net 我可以重新发布或携带POST数据吗(如果可以,我可以使用重定向吗?),asp.net,post,redirect,captcha,Asp.net,Post,Redirect,Captcha,我想将用户重定向到另一个页面以填写验证码,但我想保留post数据,如果验证码通过,则将其发送回并完成上一页操作 当/如果用户成功,我希望添加一个captchaPass=true,并希望访问post数据并继续处理。现在我正在使用重定向,但我不需要使用它 是否可以携带post数据?请记住,我可能会让用户访问多个页面,因此需要分离数据,而不是混淆 一种方法是获取并保存captcha页面上所有发布的数据[1],然后使用此表单数据重新创建一个中间白色页面,并自动向上一页发布新的内容 这能解决哈希检查和安全

我想将用户重定向到另一个页面以填写验证码,但我想保留post数据,如果验证码通过,则将其发送回并完成上一页操作

当/如果用户成功,我希望添加一个captchaPass=true,并希望访问post数据并继续处理。现在我正在使用重定向,但我不需要使用它

是否可以携带post数据?请记住,我可能会让用户访问多个页面,因此需要分离数据,而不是混淆

一种方法是获取并保存captcha页面上所有发布的数据[1],然后使用此表单数据重新创建一个中间白色页面,并自动向上一页发布新的内容

这能解决哈希检查和安全问题吗

没有这个白色重定向页面有更好的主意吗

[1] 这里还有一个问题,如何用重定向发送这些发布的数据?不要更改url,或者使其太大而无法接受。请记住,服务器传输可能不是个好主意,因为这会使回captach post的想法变得复杂

更新1 这里的基本思想是,一些人如何捕获一个页面的完整post back,显示一个不同的页面,然后将post back数据发送到原始的第一个页面

原因是为了阻止坏用户或攻击者的bot程序,这些程序试图通过在短时间内从不同页面发回许多帖子来关闭页面/服务器。所有这些都是在没有javascript的情况下发生的,大多数攻击者使用定制的程序,将数据发布到所有页面,试图关闭系统

例如,若一个页面有一个搜索框,那个么大多数网站都很容易通过开始使用通配符进行数百次随机搜索(使用SQL通配符称为和Dos攻击),并让SQL server和计算机花费时间和cpu进行搜索和搜索,从而将其摧毁。因此,为了防止这样的攻击,您需要识别来自同一台计算机的多个回发,然后下一步是将他重定向到验证码页面,以防这是一个计算机程序

另一个例子是,许多页面都有电子邮件提交功能,非常简单,你可以提交他上百次的电子邮件,并用上百封电子邮件立即填满他的邮箱,或者在商店里一次又一次地将所有物品放在购物车上,并用类似的东西填满数据库

因此,ajax和javascript在这种情况下不起作用,我们需要一种方法在帖子后将他重定向到一个页面,该页面可以检查他是真正的用户还是攻击者,并阻止他,但如果他是真正的用户,则必须返回到正常操作

更新2 所有这些都必须以常规方式完成,例如在BasePage、Global.asax或与任何页面内容无关的地方。因为我们试图阻止DoS攻击,或者在任意页面的任意位置多次提交

是的,我知道如何在联系人页面上放置验证码,但这不是这个问题的初衷-这个问题问的是如何将post数据传送到不同的页面,保留在那里,然后重新发送到原始页面

显而易见的解决方案是将所有帖子读回,并保存在表单上,然后读回并动态生成一个仅包含该数据的表单,然后将帖子发回。在这里,我要问的是,是否还有比这更好的解决方案

其他应用
还有一种情况是,用户在请求身份验证的页面中,但身份验证票证已过期,用户发回。在这种情况下,我们需要将所有回发的数据保留在某个地方,以继续登录页面,并将它们重新发送回请求验证的第一个页面。

当然,只需将表单数据以隐藏元素的形式写入验证码页面,并将附加的验证码字段添加到表单中即可。让你的提交行动将整个事情发回原处。使用ASP.NET,将验证码写入同一页面并隐藏表单字段可能更容易,但您可以像我上面所描述的那样进行跨页面回发。

可能会对您有所帮助。

为什么不使用AJAX实现验证码?以div显示的lightbox样式加载带有Javascript的captcha对象和表单,接受用户输入并将其发布到服务器进行验证,因此继续用户发布请求或将其保留在那里,直到用户正确(或取消)为止

更具体的情况示例:

为表单提交按钮提供某个Javascript函数的onClientClick值。此函数决定此特定表单是否需要验证码。如果它这样做了,它将加载一个用于获取验证码的界面(您需要使用一些服务器端代码),并将验证码的输入元素插入到用户单击提交的表单中

一旦用户输入验证码输入并单击某个按钮,该按钮的单击事件将返回到您的第一个JS函数,Javascript将拦截该操作并发布完整表单、原始表单中的所有数据和验证码,以进行验证。您的服务器脚本现在可以一次处理所有这些


这是我能想到的最好的解决方案,它的工作原理与您的要求类似,但我无法想象您为什么要在不同的页面上执行验证码。

服务器。使用
多视图传输
,像control这样的面板
可以吗?这样,就无需为
数据维护
回发
操心了。您可以使用javascript进行验证

您可以将这两个功能保持在同一页面中,以避免将数据从一个页面移动到另一个页面/将数据带回原始页面。您可以利用
会话
进行此中间操作。跨回发将其设置回关联控件。您可以创建一个
实例化