维护asp.net页面的状态

时间:2010-06-08 18:11:47

标签: c# asp.net .net-3.5

如果它是一个公共网站(包括购物车,愿望清单等),那么维护asp.net页面状态的首选方法是什么?我正在设计一个网站,需要确保用户无法篡改状态(例如删除cookie等)。

5 个答案:

答案 0 :(得分:2)

为防止用户篡改,您需要在服务器端存储会话状态。一个好的做法是将它存储在数据库(sql server)或进程外,可以在同一台服务器上,也可以在另一台服务器上,有时称为状态服务器。

答案 1 :(得分:2)

这些数据(购物车和愿望清单)听起来都应该存储在您的数据库中,因此它们可以保留在删除cookie或会话超时之外。

答案 2 :(得分:0)

  

我正在设计一个   需要确保的网站   用户无法篡改   状态(例如删除cookie   等)。

我会使用session state。它简单有效。

你无法阻止他们篡改它,只要删除cookie等。可能会更改cookie,但不能删除它们。

您可以将重要信息存储在服务器上,因此客户端不会在cookie等中存储敏感信息。

答案 3 :(得分:0)

维护状态的首选方法是使用viewstate。但是,您希望将存储的金额保持在最低水平,因为它会显着影响速度。

如果您需要在页面之间存储信息,我建议使用会话状态。它简单而且非常灵活。

答案 4 :(得分:0)

用户将始终能够篡改您用于存储状态的任何方法。请考虑以下示例:

  • Cookie - 可以更改,删除
  • 会话 - 可以删除,超时,更改会话密钥
  • ViewState - 可以搞乱密钥

我加密我的数据并将密钥存储在cookie中 - 例如购物车ID,用户ID等。该cookie可以在登录时加载并且可以被篡改,但由于密钥加密,没有真正的危害可以是完成。存储在会话中可以正常工作,但超时会在很多场合使我感到困扰,需要更多考虑。