我应该在ViewState中存储数据库ID字段吗?

Dr *_*man 3 asp.net viewstate

我需要从数据库中检索记录,将其显示在网页上(我正在使用ASP.NET),但是将记录中的ID(主键)存储在某处,以便稍后我可以使用该ID返回数据库(也许要做更新).

我知道可能有几种方法可以做到这一点,例如将ID存储在ViewState或隐藏字段中,但最好的方法是什么?我可以选择这种方法的原因是什么?

blo*_*art 6

这取决于.

如果有人看到记录ID,你关心吗?如果你这样做,那么隐藏的字段和viewstate都不合适; 您需要将其存储在会话状态,或加密viewstate.

如果有人提交伪造身份证明的表格,您是否在乎?如果你这样做,你就不能使用隐藏的领域(你需要将CSRF保护视为奖励)

你想要它是不可改变的,但不关心它是否可以观看(有一些工作)?使用viewstate并在页面上设置enableViewStateMac ="true"(或全局)

想要隐藏和保护但不能使用会话状态?通过设置以下web.config条目来加密您的视图状态

<pages enableViewState="true" enableViewStateMac="true" />
<machineKey ... validation="3DES" />
Run Code Online (Sandbox Code Playgroud)