代码之家  ›  专栏  ›  技术社区  ›  Brandon

禁用ViewState的页面是否仍应验证\uu ViewState字段?

  •  0
  • Brandon  · 技术社区  · 14 年前

    我有一个购物车页面(购物车.aspx)它有一个按钮,如果需要支付,它会(有时)发布到第三方支付网关。支付网关将处理支付,然后做一个无声的帖子到我的网站(订单.aspx)所以我可以更新订单状态。

    发生了什么事购物车.aspx(已启用viewstate)向支付网关投递,网关将作为静默投递的一部分将其发回。尽管订单.aspx如果禁用了viewstate和validation,它仍会尝试验证所给定的\uu viewstate字段。

    我知道布景 EnableViewState=false

    我试过打电话 ViewState.Clear() Page_Init 事件订单.aspx,但ViewState显然为空。

    有什么建议可以解决这个问题吗?我不想在上禁用ViewState购物车.aspx(在某些情况下,这可能是必要的),但我不知道如何清除它订单.aspx.

    1 回复  |  直到 14 年前
        1
  •  1
  •   Steven    14 年前

    即使禁用ViewState,ASP.NET仍然需要它。它使用hidden\uu viewstate字段作为视图状态、控件状态,并用于验证请求。您可以创建自定义 HttpHandler 把订单贴到那一页。当然,你需要对请求的有效性保持谨慎。确保您可以确保请求是合法的,而不是来自黑客。