Asp.net 回发时可以更改URL吗?

Asp.net 回发时可以更改URL吗?,asp.net,postback,Asp.net,Postback,我只需要解析URL请求。GET上的查询字符串,而不是回发上的查询字符串,对吗 if(!IsPostBack) { Viewstate["magic_number"] = Parse(Request.Query); } 不能期望用户在后续回发的请求中修改URL,或者他们可以吗 问题的动机——我不控制进行回发的javascript代码段,所以对我来说这有点像黑盒子。你的假设是正确的,URL不希望在后续的回发中被修改,你只需要在GET上解析查询字符串,这会在第一次加载页面时发生。回发的URL

我只需要解析URL请求。GET上的查询字符串,而不是回发上的查询字符串,对吗

if(!IsPostBack)
{
    Viewstate["magic_number"] = Parse(Request.Query);
}
不能期望用户在后续回发的请求中修改URL,或者他们可以吗


问题的动机——我不控制进行回发的javascript代码段,所以对我来说这有点像黑盒子。

你的假设是正确的,URL不希望在后续的回发中被修改,你只需要在GET上解析查询字符串,这会在第一次加载页面时发生。

回发的URL通常不会更改

当然,在回发之前,可以使用FireBug之类的工具编辑表单标记中的URL,但是您可能不希望用户注入的值,而是原始值。

URL不会更改。但请记住,每个回发都是page类的一个新实例。因此,如果在第一个视图中没有将结果保存在某个位置,则需要准备在下一个视图中再次保存结果,依此类推。在本例中,您将其保存到ViewState,这样就可以了

然而,我怀疑你不会问这个问题,除非你观察到导致你怀疑的行为。所以让我们考虑一下什么事情会导致这种情况:

  • 可以在保存结果的客户机上修改ViewState(尽管不是很简单,也绝对不推荐)
  • 您可以在初始页面视图之前伪造回发
  • 您可以使用javascript更改发布的url

然而,对于所有这些事情,如果你写了任何东西来做到这一点,你肯定会知道。

正如其他人所指出的,URL不会改变。当然,如果我们生活在一个完美的世界,你永远不会收到垃圾邮件,也不会有人试图对你的网站做任何恶意的事情

在现实世界中,你应该预料到恶意的人会试图劫持你的网站,并且需要关注类似的事情

您不应该假设回发时收到的数据是有效的